我有手臂装配问题。 以下armv7汇编代码的十六进制二进制输出是什么?
LDR r3, #0xaabbccdd
BLX r3
我需要这段代码的汇编输出 但我的电脑环境很差
提前谢谢
答案 0 :(得分:2)
评论者提到的LDR r3,#0xaabbccdd
不是有效的指示。 ARM操作码中的Immediates位于ZeroExtend(imm8) ROR (imm4*2)
格式,允许您表示例如0xaa000000
,0x00bb0000
甚至0xd000000d
- 但不是0xaabb0000
或0xaabbccdd
。
汇编器通常提供用于加载32位立即数的伪指令,例如,在GAS中你可以做到:
ldr r3,=0xaabbccdd
将编码为PC相对负载 - 即ldr r3,[pc,#offset]
。偏移量(以及精确的指令编码)取决于指令到存储值的literal pool之间的距离。