1. 取低 8 位,先用 0 扩展为 32 位数
2. 将所得 32 位数循环右移 2 * Rotate 位, Rotate 为 [11:8]
来分析一句:mov r2, #300。反汇编如下:
8004: e3a02f4b mov r2, #300 ; 0x12c
立即数是直接放在指令内部的。
1. 取其低8位:0x4b
2. 扩展为32位:0x0000 004b
3.
4.
对于0x53000000的计算方法也是相同的。 mov r1, #0x53000000 这样写确实是可行的。
MOV R1,#0x00004000 反汇编得 4: e3a01901 mov r1, #16384 ; 0x4000
LDR R0,=0x56000000 反汇编得0: e3a00456 mov r0, #1442840576 ; 0x56000000
有兴趣可以验证以上两个例子