Por ejemplo, estoy ejecutando Windows 7 64 bit, pero parece que todos los mejores recursos para aprender lenguajes ensambladores hablan de x86. Si es posible escribir x86 en x64, ¿cuál es la mejor manera de hacerlo? ¿Hay conversores en existencia? Además, ¿cuáles son algunos buenos recursos para 64 bit programación de ensamblaje?Escribiendo ensamble x86 en un procesador x64 bit
Respuesta
x86 definitivamente no es el mejor, primero, ensamblaje para aprender. si es el último que quieres aprender. pago https://github.com/dwelch67 lsasim es un conjunto de instrucciones diseñado para aprender a ensamblar. pcemu_samples es un pcemu modificado (emulador 8086/88 capaz de ejecutar dos), con las llamadas de bios/dos eliminadas, específicamente para aprender el ensamblador 8088/86. Recomiendo que cuando se acerque al ensamblaje x86 comience con 8088/86, algo así como las pcemu_samples (donde se ve obligado a enfocarse en el lenguaje ensamblador y no en las llamadas al sistema). dosbox y bochs pueden ejecutar programas 8088/86 con dos/bios cuando desee pasar a las llamadas al sistema. ENTONCES suba a las mejoras de 32 y 64 bit, multi-core y todo eso.
Te harás un gran beneficio aprendiendo x86 al final. msp430, lo lsasim arriba, brazo, pulgar (no thumb2) son todos buenos puntos de partida. Aprender algunos conjuntos de instrucciones diferentes al menos, si no muchos, también te beneficiarán enormemente. Tengo simuladores para algunos de estos que le dan una buena visibilidad de lo que está sucediendo. Recomiendo aprender primero sobre simuladores, simuladores en los que puede obtener visibilidad.
si comienza con 8088/86 y luego pasa a 386/486 y luego hacia adelante a x64, las otras respuestas que recibe sobre las instrucciones (sorta) que funcionan en todas partes tendrán mucho sentido.
La mayoría de los sistemas operativos de 64 bits pueden ejecutar binarios de 32 bits sin problemas. Como tu pregunta está etiquetada [windows], deberías estar bien. Si sigue las instrucciones para crear un binario de 32 bits a partir de sus tutoriales, los binarios resultantes deberían funcionar sin modificaciones. Si está utilizando una cadena de herramientas diferente, es posible que necesite encontrar la bandera que le dice a su ensamblador que produzca código de 32 bits en lugar de código de 64 bits.
Las diferencias entre la programación de ensamblaje de 32 y 64 bits son mínimas. Hay algunas instrucciones nuevas y mejoradas para manejar los tipos de 64 bits, más algunos nuevos nombres de registro. También hay una nueva ABI con la que lidiar. Intel tiene manuales de desarrolladores de software que describen todas las instrucciones posibles y cómo funcionan.
x64 puede ejecutar aplicaciones x86 sin dificultad en la mayoría de los casos. Hay algunas diferencias en el ABI, pero si solo desea aprender la programación de ensamblado, cualquier recurso x86 que mire debería estar bien. En cuanto a aprender la programación de ensamblaje en sí, esa es una pregunta más amplia. Es posible que desee consultar NASM para comenzar.
- 1. Cargando ensamble x86 o x64
- 2. Generando ensamblaje para un procesador x86
- 3. Código de ejecución en un procesador diferente (ensamblado x86)
- 4. ¿Puedo instalar Windbg x86/x64 en mi x64 WIN7?
- 5. Compilación para x86 y x64
- 6. Usando x64 dll en la aplicación x86
- 7. x86 Servicio de depurador remoto en x64
- 8. Operador Mod (%) en x86 vs x64
- 9. Acceso COM x86 desde x64 .NET
- 10. ¿Los chips x86/x64 todavía usan microprogramación?
- 11. Escribiendo un procesador de anotación para maven-processor-plugin
- 12. StackOverflowException lanzada en sistemas x64; funciona correctamente en x86
- 13. Depuración aplicación .NET x86 en Windows x64 en VS2008
- 14. TypeLoadException en x64, pero está bien en x86 con structlayouts
- 15. Ejecutando código de ensamblado de 32 bits en un procesador Linux y 64 bit de 64 bit: explique la anomalía
- 16. Cómo determinar si el archivo dll fue compilado como un bit x64 o x86 usando Delphi o Lazarus
- 17. ¿En qué se diferencia la arquitectura x64 de x86
- 18. Configurar ASP.NET para usar x86 en x64 Windows
- 19. Entity Framework gira mucho más lento en x64 vs x86
- 20. PresentationCore y WindowsBase dlls en ambos entornos x64 y x86
- 21. ¿Puedo ejecutar Visual Studio 2008 x86 en Windows Vista x64?
- 22. conmutación masiva entre x64 x86 en proyectos de instalación
- 23. ¿Compila ambos x86 y x64 en una configuración?
- 24. ¿Cómo puedo hacer que mi instalador VS2008 x86 instale ensamblajes x64 en x64?
- 25. Tomcat en Windows x64 usando 32-bit JDK
- 26. Ejecutar MSI x86 o x64 desde MSBuild bootstrapper
- 27. Visual Studio cargando el dll derecho (x86 o x64)!
- 28. Dirección/Signo Extender bit en conjunto de instrucciones x86
- 29. Configuración orientada tanto a x86 como a x64?
- 30. Diferencias de TVarData entre x86 y x64 Delphi
Consulte esta pregunta: http://stackoverflow.com/questions/2352048/assembly-32-bit-vs-64-bit –