Como muestra this question, con g ++, puedo hacer g++ -S -masm=intel test.cpp
. Además, con clang, puedo hacer clang++ -S test.cpp
, pero -masm=intel
no es compatible con clang (warning argument unused during compilation: -masm=intel
). ¿Cómo obtengo la sintaxis de Intel con clang?¿Cómo generar el código de ensamblado con clang en la sintaxis de Intel?
Respuesta
Esto debe conseguir sonido metálico para emitir el código de montaje con la sintaxis de Intel:
clang++ -S -mllvm --x86-asm-syntax=intel test.cpp
Puede utilizar -mllvm <arg>
acontecerá en llvm opciones de la línea de comandos sonido metálico. Lamentablemente, esta opción no parece estar bien documentada y, por lo tanto, solo la encontré navegando por las listas de correo de llvm.
Como noted below by @thakis, esto ya no es necesario en las versiones más recientes de Sonido metálico (3.5 +), ya que ahora son compatibles con la sintaxis -masm=intel
.
Suponiendo que pueda hacer que Clang emita códigos de bytes LLVM normales, puede usar llc para compilar en lenguaje ensamblador y utilizar su opción --x86-asm-syntax=intel
para obtener el resultado en la sintaxis Intel.
Gracias de nuevo. También descubrí que 'llc' por defecto activa las optimizaciones (-02), mientras que gcc y clang no usan optimizaciones (-O0) de manera predeterminada (me llevó mucho tiempo descubrir por qué la salida del ensamblaje era diferente). –
En cuanto a clang r208683 (clang 3.5+), entiende -masm=intel
. Entonces, si tu clang es lo suficientemente nuevo, puedes usarlo.
- 1. ¿Cómo se usa gcc para generar código ensamblador en la sintaxis Intel?
- 2. Cómo generar el código de ensamblado desde la fuente de C++ en Visual Studio 2010
- 3. ¿Puedo usar la sintaxis Intel del ensamblaje x86 con GCC?
- 4. ¿Cómo puede objdump emitir sintaxis intel
- 5. Hotspot7 hsdis PrintAssembly Intel Sintaxis
- 6. Clang: ¿Cómo se ve AST (árbol de sintaxis abstracta)?
- 7. Cargando el código en la GPU (Intel Sandy Bridge)
- 8. ¿Qué representan los signos de dólar ($) y porcentaje (%) en ensamblado intel x86?
- 9. Cómo traducir "pushl 2000" de AT & T asm a la sintaxis de Intel en i386
- 10. Ver tanto el código de ensamblado como el código C
- 11. Compilar el conjunto de intel con gcc/mingw
- 12. ¿Cómo puedo ver el árbol de análisis sintáctico, el código intermedio, el código de optimización y el código de ensamblado durante la compilación?
- 13. ¿Cómo consigo autotools para compilar con el compilador de Intel?
- 14. Cómo generar un JAR con el código fuente en Maven
- 15. Intel icc: cómo volcar el código optimizado como archivo C
- 16. Código de análisis con errores de sintaxis
- 17. código de la máquina de intel a la pregunta del código de ensamblaje
- 18. Convertir el árbol de sintaxis abstracto en código de bytes
- 19. ¿Cómo funciona el scalable_allocator de Intel TBB?
- 20. Guardar el código fuente con el formato (resaltado de sintaxis)
- 21. Instrumentación dinámica con Clang
- 22. ejecuta un código de ensamblado en ubuntu
- 23. Código de ejemplo para activar el analizador estático de Clang
- 24. ¿Cómo puedo usar Bochs para ejecutar el código de ensamblado?
- 25. ¿Imprime código con resaltado de sintaxis?
- 26. ¿Cómo compilo C++ con Clang?
- 27. Cómo escribir código de auto modificación en ensamblado x86
- 28. Cómo generar 'código java con anotaciones' desde el modelo emf
- 29. ¿Cómo generar dinámicamente el código matemático?
- 30. Generación de un árbol de sintaxis abstracto para el código fuente de java con ANTLR
@JerryCoffin: Gracias, generé un archivo '.bc' con clang y luego obtuve con éxito el ensamblado de Intel con' llc'. ¿Te importa hacer una respuesta? –
Oh, supongo que no es un problema. –