本文主要是介绍ARM数据处理指令中的立即数问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
CPU的手册上,数据处理指令格式如上:
立即数是Operand2部分,占据了机器码的低12位。其中最低8位称为immed_8,高4位称为rotate_imm。
立即数的数值计算方法:=immed_8 循环右移 (2 * rotate_imm)。
就是说,一个立即数0x56000000,循环左移,如果可以得到一个用8位位图表示的数,则该立即数0x56000000是一个合法的立即数;否则,该立即数不合法。
高四位:2^4=16,要想表示移位范围为0-31,则每次最少移动2位,即,右移的最小单位为2.这样,2*16就可以表示最多32位的移动。
注:转载出自:http://blog.chinaunix.net/uid-23193900-id-3184727.html
这篇关于ARM数据处理指令中的立即数问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!