¿Cómo ejecutar el código de 16 bits en Linux de 32 bits?
Pregunta
He escrito un pequeño programa de ensamblaje de 16 bits que escribe algunos valores en algunas ubicaciones de memoria. ¿Hay alguna manera de probarlo en modo protegido de 32 bits en Linux?
Solución
Otros consejos
Sí, el código de 16 bits es compatible con los procesos de usuario en Linux. La llamada del sistema para hacerlo se llama vm86()
(Hay una página del hombre, pero no hay mucho en ella). Es, naturalmente, solo funciona en plataformas X86 (y solo de 32 bits).
Si desea un ejemplo, el proyecto Elks tiene una herramienta completa para ejecutar binarios de Elks 8086 en Linux, que lo usa:
https://github.com/lkundrak/dev86/tree/master/elksemu
Busca el run_elks()
función. Es bastante sencillo.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow