问题描述
即时通讯使用 aarch64-Linux的GNU-objdump的
拆解为ARM v8的计划的一部分。它可以很好地用于V8 64位指令,但是当模式被改变到V7指令集(A32)失败 - 的code开始作为V8指令集,切换到A32(AArch32执行状态)和比 T32
- Thumb指令集。我怎么能拆卸A32和T32的指示?我是否需要突破code到零件时,模式切换,让我有独立的指令模式块?
Im using aarch64-linux-gnu-objdump
to disassemble part of a program for ARM v8. It works well for V8 64 bit instructions, but fails when the mode is changed to V7 instruction set(A32) - the code starts as V8 instruction set, switches to A32 ( AArch32 execution state) and than to T32
- thumb instruction set. how can I disassemble the A32 and T32 instructions? Do I need to break the code to parts when the mode switches, so that i have separate instruction mode blocks?
任何帮助将是AP preciated
Weselfox
any help would be appreciatedWeselfox
推荐答案
不像为A32(ARM)和T32(拇指)之间存在32没有交叉的指令集支持比特和64位ARM架构。 A64的确是一个全新的指令集。
Unlike for A32 ("ARM") and T32 ("Thumb") within a 32-bit toolchain, there is no cross-instruction-set support between 32-bit and 64-bit ARM architectures. A64 really is a completely new instruction set.
由于互通不会在64位和32位的状态之间存在(你只能改变宽服用一个例外),这是不是在正常使用的问题。但是,构建包含code几个例外级别的独立图像时,我能想象它会变得有点乏味。
Since interworking does not exist between the 64-bit and 32-bit states (you can only change 'width' on taking an exception) this is not an issue in normal usage. But when building a standalone image containing code for several exception levels I can imagine it will get a bit tedious.
您需要使用aarch64-Linux的gnu-为A64的部分和臂Linux的gnueabihf-为A32 / T32的部分。
You need to use aarch64-linux-gnu- for A64 portions and arm-linux-gnueabihf- for A32/T32 portions.
这篇关于如何使用aarch64-Linux的GNU-objdump的拆解V7模式指令(A32,T32)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!