您的位置 首页 传感器

ARM处理器指令当即寻址的约束

在ARM处理器的汇编语言中,对指令语法格式中的常数表达式有这样的规定:该常数必须对应8位位图,即常数是由一个8位的常数循环移位偶数位得

ARM处理器的汇编语言中,对指令语法格局中的常数表达式有这样的规则:“该常数有必要对应8位位图,即常数是由一个8位的常数循环移位偶数位得到的。”

给定一个当即数,判别其是否合法能够分三步:首要将给定的当即数写成32位二进制的方式;然后看能不能用一个8位的二进制数包括一切含1的部分,如不能则不合法;最终看这个8位二进制数能不能循环右移偶数位得到给定的当即数,不能数则不合法。

0xff=00000000000000000000000011111111:相当于8位二进制11111111循环右移0位得到,合法;

0x104=00000000000000000000000100000100:相当于8位二进制01000001循环右移2位得到,合法;

0x101=00000000000000000000000100000001:包括一切1的部分是100000001,无法用一个8位二进制表明,不合法;

0x102=00000000000000000000000100000010:包括一切1的部分是10000001,但10000001只能循环右移奇数位得到给定的数,不合法;

0xfC000002=11111100000000000000000000000010:相当于8位二进制10111111循环右移6位得到,合法。

0x8000007E=10000000000000000000000001111110:包括一切1的部分是11111101,但10000001只能循环右移奇数位得到给定的数,不合法。

总结:榜首,判别一个数是否契合8位位图的准则,首要看这个数转换成二进制后1的个数是否不超越8个,假如不超越8个,再看这n个1(n<=8)是否能一起放到8个二进制位中,假如能够放进去,再看这八个二进制位是否能够循环右移偶数位得到起先被判别的那个数值,假如能够,则此数值即为契合8位位图原理,不然,不契合。第二,用12位的编码来表明一个恣意的32位数是不可能的,只能经过循环右移八位二进制数偶数位来得到一部分32位数,其他的无法表明的32位数,只要经过其它途径获得了,比方0xffffff00,能够经过0x000000ff按位取反得到。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/yingyong/chuanganqi/263421.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部