arm disassembly objdump arm64 linaro

arm - cómo usar aarch64-linux-gnu-objdump para desmontar las instrucciones del modo V7(A32, T32)



disassembly arm64 (1)

Estoy usando aarch64-linux-gnu-objdump para desmontar parte de un programa para ARM v8. Funciona bien para las instrucciones V8 de 64 bits, pero falla cuando cambia el modo a V7 (A32); el código comienza como conjunto de instrucciones V8, cambia a A32 (estado de ejecución AArch32) y luego a T32 - conjunto de instrucciones de pulgar. ¿Cómo puedo desmontar las instrucciones A32 y T32? ¿Debo romper el código en partes cuando el modo cambia, de modo que tengo bloques de modo de instrucción separados?

cualquier ayuda sería apreciada Weselfox


A diferencia de A32 ("ARM") y T32 ("Thumb") dentro de una cadena de herramientas de 32 bits, no hay soporte de conjunto de instrucción cruzada entre arquitecturas ARM de 32 bits y 64 bits. A64 realmente es un conjunto de instrucciones completamente nuevo.

Como el interfuncionamiento no existe entre los estados de 64 bits y 32 bits (solo puede cambiar el ''ancho'' al tomar una excepción), esto no es un problema en el uso normal. Pero cuando construyo una imagen independiente que contiene código para varios niveles de excepción, me imagino que será un poco tedioso.

Necesita utilizar aarch64-linux-gnu- para las partes A64 y arm-linux-gnueabihf- para las porciones A32 / T32.