ARM寻址方式中的立即数
在《ARM体系结构与编程》一书中,
讲到了立即数方式----每个立即数由一个8位的常熟循环右移偶数位得到。
这样并不是每一个32位的常数都是合法的立即数,只有通过上面的方法构造得
到的才是合法的立即数。
下面是合法的立即数:
0xff,0x144,0xff0,0xff00
而下面的不是合法的:
0x101,0x102,0xff1
请问立即数是否合法怎么判断的啊?
另外:
0x3f循环右移(2*0xE)后怎么得到了ox3f0??
8位立即数循环右移又到底是怎么回事呢?
8位二进制循环右移后是不是仍然是8位二进制呢
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
想了一天好像知道了可是为什么要有这种要求呢??
前几天在这里讨论过这个问题,你往前翻几页找找
回复 3# amarant
谢谢,找到了,讲的很详细
http://bbs.chinaunix.net/thread-2304253-1-1.html
8bit数左移偶数位可以得到的就是合法的立即数。
回复 5# bitmilong
谢谢!
回复 6# haomarlin
左移?不是循环右移吗?