深入解析ARM指令集中立即数寻址的范围限制
eeskill 2023-11-29


这是为什么呢?网上搜罗一番,果然有很多相关的讨论帖子,再加上自己的理解,大致得到了如下的结论。



有兴趣的可以去搜一下这一个关键词,8位位图,原来我们的第2操作数就是遵循这个规律的。


以上的解释文字来自ARM Processor Instruction Set,再附上两张图片:




所以,我们可以这样总结:


1.判断一个数是否符合8位位图的原则,首先看这个数的二进制表示中1的个数是否不超过8个。如果不超过8个,再看这n个1(n<=8)是否能同时放到8个二进制位中,如果可以放进去,再看这八个二进制位是否可以循环右移偶数位得到我们欲使用的数。如果可以,则此数符合8位位图原理,是合法的立即数。否则,不符合。


2.无法表示的32位数,只有通过逻辑或算术运算等其它途径获得了。比如0xFFFFFF00,可以通过0x000000FF按位取反得到。


声明: 本文转载自其它媒体或授权刊载,目的在于信息传递,并不代表本站赞同其观点和对其真实性负责,如有新闻稿件和图片作品的内容、版权以及其它问题的,请联系我们及时删除。(联系我们,邮箱:evan.li@aspencore.com )
0
评论
  • 相关技术文库
  • 单片机
  • 嵌入式
  • MCU
  • STM
下载排行榜
更多
评测报告
更多
广告