ARM技术论坛
直播中

郑成枝

7年用户 1310经验值
私信 关注
[问答]

如何将32-bit立即数通过MOV指令装入寄存器R2中呢

ARM指令格式A1和A2都无法将32-bit立即数通过MOV指令装入寄存器R2。我应该用什么指令或什么方法实现呢?

回帖(3)

王燕

2022-10-11 15:20:27
可以用以下伪指令实现:

LDR  r2, =0x12345678
编译器会自动生成一条PC relative LDR指令,从literal pool里取数。即:

LDR  r2, [pc, xxx]   // 偏移量由编译器自动计算

...

...

...

DCD  0x12345678  // Literal pool
举报

杨静

2022-10-11 15:20:38
由于当前 PC 到函数末尾的长度,人工基本没法算,所以这个工作(在合适的位置放入立即数,以及计算 offset)一般都由汇编器或编译器自动安排。
举报

夏日余晖

2022-10-11 15:23:25
通常理解的立即数,应该是把数据装入寄存器的那条CPU指令,使用了“立即寻址”的寻址方式-
举报

更多回帖

发帖
×
20
完善资料,
赚取积分