ARM汇编程序中立即数的合法性
时间:11-21
来源:互联网
点击:
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只能循环右移奇数位得到给定的数,非法。
ARM汇编程序立即 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)