arm(Thumb-2)比较32位并转换为十六进制

时间:2018-04-08 16:27:55

标签: assembly arm cpu-registers

我在arm(Thumb-2)上运行并想检查存储在寄存器r3 + 0x14 = AABBCCDD上的地址数据。

我认为代码是:

ldr r3,[r0,#0x14]
ldr r2, #0xAABBCCDD
cmp r3, r2
BNE notCompareLabel

现在我想转换为修复Thumb-2的十六进制。我使用http://armconverter.com/从arm转换为hex。

ldr r3,[r0,#0x14] - > 4369

cmp r3, r2 - > 9342

但我无法在此网站上翻译ldr r2, #0xAABBCCDD

  1. 我的手臂代码是对的吗?
  2. 我正在寻找将arm(Thumb-2)翻译成十六进制的软件(我不喜欢这个网站)
  3. 为什么我无法翻译ldr r2, #0xAABBCCDD?什么是十六进制的翻译?
  4. 谢谢大家!

1 个答案:

答案 0 :(得分:1)

应该是

ldr r2, =0xAABBCCDD

为什么不使用合适的汇编程序,如GAS(GCC附带)? 这个ldr是一个伪指令。它可能会被转换为mov或来自文字池的加载: http://www.keil.com/support/man/docs/armasm/armasm_dom1359731147760.htm

如果你想修补某些东西而需要避免使用文字池,你可以这样做:

mov r2, #0xCCDD
movt r2, #0xAABB