Debug en Windows 7 x64 con DOSBox

Debug en Windows 7 x64 con DOSBox Francisco Daniel García Noriega Introducción a DOSBox y práctica de ensamblador con debug en Windows 7 de 64 bits ...
1 downloads 0 Views 2MB Size
Debug en Windows 7 x64 con DOSBox Francisco Daniel García Noriega Introducción a DOSBox y práctica de ensamblador con debug en Windows 7 de 64 bits

Contenido Introducción a DOSBox .................................................................................................................. 2 Atajos de teclas en DOSBox ............................................................................................................ 3 Práctica de ensamblador con debug. ............................................................................................... 4

Introducción a DOSBox Es un emulador de DOS que utiliza librerías SDL que hacen de DOSBox muy portable para diferentes plataformas. DOSBox ha sido creado para diferentes plataformas como Windows, BeOS, Linux, MacOS X… DOSBox emula el CPU: 286/386 en modo real y protegido, sistemas de archivos XMS/EMS, gráficos Tandy/Hercules/CGA/EGA/VGA/VESA, sonidos de SoundBlaster/Gravis Ultra Sound para una excelente compatibilidad con video juegos. Es OpenSource y gratis. A través de su página podemos obtener los instaladores en la sección de descargas. http://www.dosbox.com/ Resumen de la introducción de DOSBox: Antes de empezar a usar los archivos en nuestro propio sistema de archivos hay que montar el directorio que contiene los archivos. mount C C:\archivos\ creará una unidad C con el contenido de C:\archivos C:\archivos\ es un ejemplo. Remplázalo con tu propio directorio de archivos Cuando esté montada completamente puedes escribir c: para ir a la nueva unidad montada. Ejecutar dir para mostrar el contenido. El comando cd permitirá entrar en un directorio. Se pueden ejecutar programas que terminen en .exe .bat y .com. En caso de ocurrir un error DOSBox se detendrá y abortará sin mostrar algún aviso.

Atajos de teclas en DOSBox Pueden ser cambiados en el keymapper Alt + enter Alt + pause Ctrl + F1 Ctrl + F4 Ctrl + Alt + F5 Ctrl + F5 Ctrl + F6 Ctrl + Alt + F7 Ctrl + Alt + F8 Ctrl + F7 Ctrl + F8 Ctrl + F9 Ctrl + F10 Ctrl + F11 Ctrl + F12 ALT + F12

Pantalla completa Pause DOSBox Inicia el keymapper Actualiza el directorio cache para todas las unidades. Empieza/Detiene creación de una película de la pantalla Guarda una captura de pantalla Empieza/Detiene la grabación de una salida a un archivo de ondas. Empieza/Detiene la grabación de comandos OPL Empieza/Detiene la grabación de comandos raw MIDI Decrece los saltos de fotogramas Aumenta los saltos de fotogramas Mata DOSBox Captura/Desactiva el mouse Decrece los ciclos de DOSBox Aumenta los ciclos de DOSBox Desbloquea la velocidad

Práctica de ensamblador con debug. Primeramente se debe instalar DOSBox con el instalador “DOSBox0.74-win32-installer.exe”, el procedimiento es realmente sencillo y una vez culminado se debe poder abrir sin problemas mostrando una pantalla como la siguiente:

Se debe tener el programa “debug.exe” y de preferencia tenerlo localizado en un directorio próximo a la unidad raíz. Para esta práctica se creará un directorio llamado debug en la unidad C y en esta carpeta se almacenará el programa “debug.exe”. Se debe tener una vista como la siguiente:

Una vez que nuestra carpeta “debug” se visualice como lo anterior, estará lista el área de trabajo donde se llevará a cabo la práctica. En DOSBox lo primero que hay que realizar es montar en una unidad la carpeta donde se ubicarán los archivos a utilizar o una carpeta que sirva de referencia para desplazarnos en nuestro sistema de archivos. Se procederá a ejecutar la siguiente instrucción: mount d c:\debug\ de esta manera se montará la carpeta “debug” ubicada en nuestra unidad C en la unidad virtual D de DOSBox y de esta manera se podrá acceder a los archivos. Cuando el montado es exitoso DOSBox muestra una mensaje de que se ha llevado a cabo satisfactoriamente.

Ahora hay que acceder a la unidad virtual D, introduciendo el siguiente comando y enter: D:

El prompt a partir de ahora nos ubicará en la unidad D y para verificar que se ha realizado el montaje anterior de manera exitosa se procederá a ejecutar el siguiente comando: dir

De esta manera se puede visualizar el programa “debug.exe” esto demuestra que se montó la carpeta debug de la unidad C en la unidad virtual D de DOSBox partiendo como raíz en D. Ahora, libremente se puede teclear la siguiente instrucción para invocar al programa “debug.exe” debug

Y en seguida aparecerá el prompt (-) del debug en el lado izquierdo esperando una instrucción. Para comprobar que estamos en debug podemos listar las instrucciones disponibles en debug introduciendo el siguiente comando ? tecleamos enter.

Ahora, una vez que se han listado las instrucciones en debug se llevará a cabo la demostración de escritura de bytes en un programa .COM, el código se desensamblará con debug y se ejecutará. A partir de ahora se empezará a crear un programa que muestre la cadena “hola”. Se introducirá la siguiente instrucción en debug: a Como se muestra anteriormente entre las instrucciones que soporta debug “ensambla”.

Y nos mostrará una pantalla como la siguiente:

Estaremos en la posición 0100 lo cual es importante y la cifra a la izquierda puede ser muy diferente para lo cual es trivial en esta práctica. En esta posición se empezará a codificar el programa, cabe mencionar que después de cada instrucción teclear (enter). mov ah, 09 mov dx, 0109 int 21 int 20 db 68 db 6f db 6c db 61 and al, 19 hlt En la siguiente página se muestra cómo debe visualizarse al finalizar.

Teclear “enter” al terminar de codificar. Ahora se procede a escribir el programa en un archivo .com de la siguiente manera. Primero se introduce al registro CX qué capacidad ocupa nuestro programa, restando la dirección final 0110 - 0100 = 10 mediante el siguiente procedimiento: r cx se introduce el valor 10, después un enter para confirmar. Seguido de esto, se nombra el archivo a escribir de la siguiente manera: n p1.com Finalmente, se escribe con la instrucción: w En la siguiente página se muestra el proceso finalizado.

Ahora se procede a un volcado de memoria a partir de la localización 100 con el siguiente procedimiento: d ds:100 Y nos muestra que realmente se alojó la cadena “hola” en nuestro programa.

Una vez confirmado lo anterior, se procede a salir de debug mediante el comando q

Ahora mediante el comando dir en DOSBox se muestran los archivos en la carpeta y se debe visualizar el programa “p1.com”

Ahora se procede a ejecutar el programa simplemente tecleando su nombre y presionando enter. p1 debe aparecer la cadena “hola”

Finalmente la carpeta de nuestra área de trabajo debe finalizar de la siguiente manera:

Nota: Puede haber problemas con la instrucción G (Go) de debug y puede llegar a abortar la consola para dicho problema es preciso poner la instrucción hlt al final de cada programa y en caso de utilizar G utilizarlo en un cierto rango, es decir, si el programa termina en 109 indicar G 107.