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