La opción gcc -S
generará el código de ensamblado en AT & sintaxis T, ¿hay alguna forma de generar archivos con sintaxis Intel? ¿O hay una forma de convertir entre los dos?¿Cómo se usa gcc para generar código ensamblador en la sintaxis Intel?
Respuesta
¿Has probado esto?
gcc -S -masm=intel test.c
no probado, pero me encontré en este forum donde alguien decía que trabajaba para ellos.
Acabo de intentar esto en el mac y falló, así que busqué en mi página del manual:
-masm=dialect
Output asm instructions using selected dialect. Supported choices
are intel or att (the default one). Darwin does not support intel.
Se puede trabajar en su plataforma.
Para Mac OS X:
clang++ -S -mllvm --x86-asm-syntax=intel test.cpp
El
gcc -S -masm=intel test.c
funciona con mí. Pero puedo decir de otra manera, aunque esto no tiene nada que ver con la ejecución de gcc. Compila el ejecutable o el archivo de código objeto y luego desmonte el código objeto en la sintaxis de ensamblador Intel con objdump de la siguiente manera:
objdump -d --disassembler-options=intel a.out
Esto podría ayudar.
igual que objdump -d -M intel –
tengo este código en el archivo CPP:
#include <conio.h>
#include <stdio.h>
#include <windows.h>
int a = 0;
int main(int argc, char *argv[]) {
asm("mov eax, 0xFF");
asm("mov _a, eax");
printf("Result of a = %d\n", a);
getch();
return 0;
};
de ese código trabajó con esta línea de comandos GCC:
gcc.exe File.cpp -masm=intel -mconsole -o File.exe
El resultado será un archivo * .exe, y funcionó en mi experiencia.
Notes:
immediate operand must be use _variable in global variabel, not local variable.
example: mov _nLength, eax NOT mov $nLength, eax or mov nLength, eax
A number in hexadecimal format must use at&t syntax, cannot use intel syntax.
example: mov eax, 0xFF -> TRUE, mov eax, 0FFh -> FALSE.
Eso es todo.
No funciona en mi Fedora: '$ gcc -S-masm = intel -mconsole ac -o a.out gcc: error: opción de línea de comando no reconocida '-mconsole'' – d33tah
Funciona en cygwin. El ensamblado entra como intel, sale como intel en el archivo .s. Si usa '-o a.out', no obtendrá un archivo .s. – Orwellophile
- 1. ¿Puedo usar la sintaxis Intel del ensamblaje x86 con GCC?
- 2. ¿Cómo generar el código de ensamblado con clang en la sintaxis de Intel?
- 3. Conversión de un ensamblador en línea GCC para Delphi ensamblador
- 4. Montaje en línea estilo Intel en gcc
- 5. ¿Por qué gcc lo hace al crear código ensamblador?
- 6. ¿Por qué la sintaxis __attribute __ ((...)) de GCC usa doble paréntesis?
- 7. ¿Cómo puedo usar gcc para compilar el código ensamblador x86 en una computadora x64
- 8. ¿Cuántos pases sobre el código usa gcc?
- 9. ¿Cómo puede objdump emitir sintaxis intel
- 10. Hotspot7 hsdis PrintAssembly Intel Sintaxis
- 11. Analizar código ensamblador
- 12. ¿Intel y el procesador AMD tienen el mismo ensamblador?
- 13. ¿Cómo se usa math.random para generar enteros aleatorios?
- 14. Compilar el conjunto de intel con gcc/mingw
- 15. Indicadores de optimización de GCC para Intel Atom
- 16. ¿Cómo puedo ver el código ensamblador generado por un compilador gcc (cualquier sabor) para un programa C/C++?
- 17. Aprendiendo a leer la salida del ensamblador GCC
- 18. Ejecutando código ensamblador con python
- 19. Intel icc: cómo volcar el código optimizado como archivo C
- 20. cómo se implementó lisp en lenguaje ensamblador?
- 21. Use intrínsecos SSE2 y ensamblador en línea gcc
- 22. ¿Cómo se usa gdb para depurar el código?
- 23. ¿Cómo escribir tu propio generador de código backend para gcc?
- 24. Código PHP para generar íconos
- 25. Cargando el código en la GPU (Intel Sandy Bridge)
- 26. Cómo traducir "pushl 2000" de AT & T asm a la sintaxis de Intel en i386
- 27. ¿Usar la afeitadora para generar el código?
- 28. ¿Cómo compilo el código ensamblador JVM en bytecode?
- 29. Al generar código, ¿qué lenguaje debe generar?
- 30. ¿Cómo consigo autotools para compilar con el compilador de Intel?
puede convertir instrucciones simples fácilmente en el shell con llvm-mc: 'echo" packsswb mm0, [bp + si-0x54] "| llvm-mc-3.2 -x86-asm-syntax = intel' da 'packsswb \t -84 (% bp,% si),% mm0' –