我有手臂组装问题。以下 armv7 汇编代码的十六进制二进制输出是什么?
LDR r3, #0xaabbccdd
BLX r3
我需要这个代码片段的汇编输出,但我的计算机环境很差
先感谢您
正如评论者所提到的,这LDR r3,#0xaabbccdd
不是一个有效的指令。ARM 操作码中的立即数在表单上ZeroExtend(imm8) ROR (imm4*2)
,这将允许您表示 eg0xaa000000
和0x00bb0000
even-0xd000000d
但不能表示 eg 0xaabb0000
or 0xaabbccdd
。
汇编器通常会提供一个伪指令来加载 32 位立即数,例如在 GAS 中你可以这样做:
ldr r3,=0xaabbccdd
这将被编码为与 PC 相关的负载 - 即ldr r3,[pc,#offset]
. 偏移量(以及因此确切的指令编码)取决于从指令到存储值的文字池的距离。