ARM的合法立即数与非法立即数

上传人:s9****2 文档编号:508279945 上传时间:2023-02-10 格式:DOCX 页数:2 大小:19.62KB
返回 下载 相关 举报
ARM的合法立即数与非法立即数_第1页
第1页 / 共2页
ARM的合法立即数与非法立即数_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

《ARM的合法立即数与非法立即数》由会员分享,可在线阅读,更多相关《ARM的合法立即数与非法立即数(2页珍藏版)》请在金锄头文库上搜索。

1、ARM指令的立即数,要求立即数以“”为前缀,对于以十六进制表示的立即数,还要求在华”后加上“0蛾&;合法的立即数与非法的立即数(教材P158)在Arm处理器中,立即数必须是对应8位位图格式,即立即数是由一个8bit的常数在16位或32位的寄存器中循环移动(向左或向右都行)偶数位得到的。合法的立即数必须能够找到得到它的那个常数,否则这个立即数就是非法的。例如:0x3F8是合法的,把它写成二进制形式为:001111111000b因为:它是用一个8bit的常数0xFE(11111110b)在16位的寄存器中循环向左移动2位就可以得到0x3F8,见下图的:判断一个立即数是否合法的办法:( 1)首先把这

2、个数用二进制表示出来,然后看这个数中多少,要看两次,一次是顺序看,一次是循环看,循环看是把器的首尾连起来,越过首尾来看,两次中如果最大间隔都大于1的最大间隔是”16位或32寄存8(包含首尾的两个1),那这个数肯定是非法的。如果有一次小于等于8则有可能是合法的,可以进行下一步继续判断:(2)此时又分为两种情况,(A)如果顺序看时1的最大间隔等于8,此时可以看看,这个数最高位1的前面或者最低位1的后面是否有偶数个0,只要一种情况下有,这个数就是合法的。(B)如果循环看时1的最大间隔小于等于8,此时可以看看,循环看时,两端得到的间隔个数是否有一个为偶数,如果有一个是偶数,这个数就是合法的。0x1010是非合法的(两次看这个数中“1的最大间隔大于8)0x1FA是非合法的(顺序看这个数中“1的最大间隔等于”8,这个数最高位1的前面或者最低位1的后面没有偶数个0,)0x7000000E是合法的(因为循环看时,两端得到的间隔个数有一个为偶数)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 营销创新

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号