Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
将值加载到 r1 寄存器的地址是如何计算的?
_start: ldrh r1, [pc, #6]
PC 的值 = 8054(ldrh 指令的地址)
根据我的说法,地址的值应该是:PC + 6 = 805A
因此它应该将地址 805A 中的值加载到寄存器 r1 中。
这取决于您是处于 ARM 模式还是 Thumb 模式。
对于 ARM 模式:
当R15用作基址寄存器时,您必须记住它包含距当前指令地址 8 个字节的地址。
R15
对于拇指模式:
的值PC将比该指令的地址大 4 个字节,但 的位 1PC被强制为 0 以确保它是字对齐的。
PC