我使用aarch64-linux-gnu-objdump
来拆卸ARM v8程序的一部分。它适用于V8 64位指令,但当模式更改为V7指令集( A32 )时失败--代码以V8指令集开始,切换到A32( AArch32执行状态)和T32
-拇指指令集。如何分解A32和T32指令?当模式切换时,是否需要将代码分解为各个部分,以便有单独的指令模式块?
如有任何帮助,我们将不胜感激。
发布于 2014-02-04 18:42:30
与32位工具链中的A32 (" ARM ")和T32 (“拇指”)不同,32位和64位ARM架构之间没有交叉指令集支持。A64确实是一个全新的指令集。
由于64位和32位状态之间不存在互操作(在处理异常时只能更改“宽度”),这在正常使用中不是问题。但是,当构建一个包含多个异常级别代码的独立映像时,我可以想象它会变得有些乏味。
您需要对A64部分使用aarch64-linux-gnu,对A32/T32部分使用arm-linux-gnueabihf。
https://stackoverflow.com/questions/21556051
复制相似问题