您的位置 首页 开关

ARM汇编程序中当即数的合法性

ARM汇编中立即数的构成规则:必须是一个8位的二进制数,前面补上24位二进制0,扩展为32位;然后将这个32位的扩展数首尾相连循环偶数位得到

ARM汇编中当即数的构成规矩:有必要是一个8位的二进制数,前面补上24位二进制0,扩展为32位;然后将这个32位的扩展数首尾相连循环偶数位得到。

给定一个当即数,判别其是否合法能够分三步:首要将给定的当即数写成32位二进制的方式;然后看能不能用一个8位的二进制数包括一切含1的部分,如不能则不合法;最终看这个8位二进制数能不能循环右移偶数位得到给定的当即数,不能数则不合法。举例如下:
0xff=00000000 00000000 00000000 11111111:相当于8位二进制11111111循环右移0位得到,合法;
0x104=00000000 00000000 00000001 00000100:相当于8位二进制01000001循环右移2位得到,合法;
0x101=00000000 00000000 00000001 00000001:包括一切1的部分是100000001,无法用一个8位二进制表明,不合法;
0x102=00000000 00000000 00000001 00000010:包括一切1的部分是10000001,但10000001只能循环右移奇数位得到给定的数,不合法;
0xfC000002 =11111100 00000000 00000000 00000010:相当于8位二进制10111111循环右移6位得到,合法。
0x8000007E=10000000 00000000 00000000 01111110:包括一切1的部分是11111101,但10000001只能循环右移奇数位得到给定的数,不合法。

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

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

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

微信扫一扫关注我们

返回顶部