一些手臂内联装配

时间:2013-02-20 07:21:46

标签: gcc arm

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

LDR r3, #0xaabbccdd
BLX r3

我需要这段代码的汇编输出  但我的电脑环境很差

提前谢谢

1 个答案:

答案 0 :(得分:2)

评论者提到的LDR r3,#0xaabbccdd不是有效的指示。 ARM操作码中的Immediates位于ZeroExtend(imm8) ROR (imm4*2)格式,允许您表示例如0xaa0000000x00bb0000甚至0xd000000d - 但不是0xaabb00000xaabbccdd

汇编器通常提供用于加载32位立即数的伪指令,例如,在GAS中你可以做到:

ldr r3,=0xaabbccdd

将编码为PC相对负载 - 即ldr r3,[pc,#offset]。偏移量(以及精确的指令编码)取决于指令到存储值的literal pool之间的距离。