如何使用aarch64-Linux的GNU-objdump的拆解V7模式指令(A32,T32) [英] how to use aarch64-linux-gnu-objdump to disassemble V7 mode instructions (A32,T32)

查看:1534
本文介绍了如何使用aarch64-Linux的GNU-objdump的拆解V7模式指令(A32,T32)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

即时通讯使用 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 appreciated Weselfox

推荐答案

不像为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)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆