miércoles, 5 de octubre de 2016

Instalando DOSBox y Enhanced Debug para trabajar con Assembler x86


En muchos cursos y carreras relacionadas con el área de informática, programación o electrónica se utiliza y enseña el lenguaje ensamblador (o assembler). Debido a su bajo nivel de abstracción se vuelve una buena manera de entender como funciona una computadora a nivel de instrucciones.

Personalmente estoy cursando Arquitectura de Computadoras en la UTN y utilizamos DOSBox, un emulador del sistema operativo DOS para trabajar con lenguaje ensamblador para Intel x86

DOSBox es un entorno que funciona perfecto para ejecutar programas de 16 bits (juegos como el DOOM original, Windows 3.1 o esos sistemas que se usaban en algunos supermercados) sin problemas de compatibilidad, como así también para modificar registros y programar a bajo nivel de forma libre y segura, algo que se complica demasiado si se quiere programar directamente sobre sistemas modernos como Windows 7 (vease memoria protegida, multitarea, modo real, blablabla, si todavia no te volves loco te invito a ver esta imagen).


La parte divertida: Instalando DOSBox y Debug

 
Los pasos para instalar DOSBox y hacer funcionar debug (el programa mágico que nos permite romper todo trabajar en ensamblador sin problemita alguno) serían los siguientes:
(lo explico para instalar en cualquier Windows; confío que aquel que use Linux u otro sistema no va a tener problemas en traducir estas instrucciones a aquellas aplicables a su especie)
1. Descargamos DOSBox desde el siguiente link http://www.dosbox.com/download.php?main=1 haciendo clic en Windows (Win32 Installer)   

2. Abrimos el ejecutable y lo instalamos como un programa de toda la vida (siguiente siguiente siguiente siguiente, no hay cosas raras acá)
3. Una vez terminamos de instalar, creamos una carpeta fácil de acceder en algun lugar de la PC donde podamos tener nuestros archivos de DOSBox. Yo personalmente hice una carpeta D:\DOSBox, pueden llamarla como quieran y ubicarla en el disco C, lo unico que recomiendo es que esté en la raiz del disco (directorio principal) por las dudas
4. Descargamos las herramientas de Enhanced Debug o simplemente debug desde este enlace: https://sites.google.com/site/pcdosretro/enhdebug/DEBUGX.ZIP?attredirects=0
Copiamos/descomprimimos el contenido del .ZIP en la carpeta que creamos en el paso 3 
5. Vamos al menu inicio y en la lista de programas apuntamos a DOSBox-0.74>>DOSBox 0.74 Options y aparecerá un bloc de notas como el que sigue
 
6. Vamos al final del archivo en la sección [autoexec] y añadimos las siguientes lineas como siguen (reemplazar D:\DOSBox con el directorio que ustedes hayan elegido en el punto 3). Recuerden guardar
mount C D:\DOSBox
C:

7. Ya estamos! Abrimos DOSBox y vemos como funciona nuestro flamante debug escribiendo, naturalmente, debug

Un par de truquitos 

Reconfigurar el teclado (o Como argentinizar DOSBox)

Para reconfigurar el teclado, en DOSBox escribimos keyb la y DOSBox cargará la distribución de teclado correspondiente a Latinoamérica, de manera que no escribas signos de pregunta en vez de guiones bajos y la Ñ funcione como debido

Limpiar la memoria después de reconfigurar el teclado

Si hiciste el paso anterior y luego mostras el contenido de la memoria con el comando -D de debug, observarás que la memoria fue invadida por cierto contenido que me es imposible explicar como se puede ver acá
Esta zona de memoria puede limpiarse tranquilamente con el comando -F (fill)
-F 0100 0FFF 00
Donde 0100 0FFF es el intervalo de memoria a modificar y 00 el valor hexadecimal por el cual se reemplazará todo el contenido de dicho intervalo (limpiando efectivamente la memoria)
Quizá sea una obviedad, pero hay que tener en cuenta que esto borrará cualquier programa en el cual se esté trabajando en ese intervalo. Y recomiendo no experimentar con valores menores a 0100, DOSBox tiende a clavarse según experiencia propia (?



Eso es todo señores, cualquier consulta puede comentarse por acá :)

Nos vemos! 

1 comentario: