这个问题在这里已有答案:
所以我有这个指令:blx r3。
通过调试,我发现r3地址是0xe2fcd839而r3包含e9 f0 4f 89 b0 0d 46 ce 49 00 2d 79 44 09 68 09。
如何确定指令分支的位置?
blx r3设置PC = R3
blx r3
除了它是一个奇怪的地址,这意味着转移到Thumb状态并实际设置PC = R3 & ~1。 (即清除低位并将其用作地址)
PC = R3 & ~1
因此R3指向的内存中的字节被提取为代码。