-6

我有手臂组装问题。以下 armv7 汇编代码的十六进制二进制输出是什么?

LDR r3, #0xaabbccdd
BLX r3

我需要这个代码片段的汇编输出,但我的计算机环境很差

先感谢您

4

1 回答 1

2

正如评论者所提到的,这LDR r3,#0xaabbccdd不是一个有效的指令。ARM 操作码中的立即数在表单上ZeroExtend(imm8) ROR (imm4*2),​​这将允许您表示 eg0xaa0000000x00bb0000even-0xd000000d但不能表示 eg 0xaabb0000or 0xaabbccdd

汇编器通常会提供一个伪指令来加载 32 位立即数,例如在 GAS 中你可以这样做:

ldr r3,=0xaabbccdd

这将被编码为与 PC 相关的负载 - 即ldr r3,[pc,#offset]. 偏移量(以及因此确切的指令编码)取决于从指令到存储值的文字池的距离。

于 2013-02-20T09:41:08.853 回答