Idioma
Ver el código de Depurando tus programas en ensamblador
{{toc numerate=1}} ===Introducción=== Para ello escribiremos un hola mundo en ensamblador usando ((https://mads.atari8.info/ MADS)), a continuación el código fuente del programa: %%(code) org $600 inicio lda #0 sta 710 lda #15 sta 709 ldx # < mensaje ldy # > mensaje jsr $c642 ciclo jmp ciclo mensaje dta c"Hola Mundo",$9b run inicio %% ===Ensamblando con depuración=== Lo ensamblamos usando unos parámetros necesarios para generar 2 archivos más que son tabla de etiquetas **.lab** y el listado del ensamblador **.lst** usando el siguiente comando : %%(code)mads holamundo.asm -o:holamundo.xex -l:holamundo.lst -t:holamundo.lab %% Veras que ahora se crearan los archivos desde el código fuente que ensamblaste, ahora usaremos Altirra para abrir automáticamente en modo depurador e poder detectar más fácil nuestras etiquetas programadas. %%(code)"C:\Program Files\Altirra-4.10\altirra64.exe" /singleinstance /run holamundo.xex /debug /debugcmd:.loadsym %% Importante que los 3 archivos **.xex**, **.lab** y **.lst** estén en el mismo directorio y además tener el mismo nombre (pero con distinta extensión), al presionar **F8** y ver el debugger veras tus etiquetas en él. ((https://www.atariware.cl/archivos/altirra/debuglabel.jpg align=center)) ===Comandos automáticos para depurador=== En Altirra puedes configurar de forma automática algún punto de interrupción en el programa al iniciar este. Para eso debes crear un archivo con extensión **.atdbg** para este ejemplo se debe llamarse **holamundo.atdbg**. En este archivo debes agregar las siguientes instrucciones : %%(code) bp $602 bp $60A %% Eso hará que al ejecutar **holamundo.xex** aparezca un mensaje de error en Altirra lo cual es normal porque tiene punto de interrupción al inicio del programa. ((https://www.atariware.cl/archivos/altirra/debugerror.jpg align=center)) Haz clic en el botón **Debug** y Altirra te mostrará con colores rojo los puntos de interrupción. ((https://www.atariware.cl/archivos/altirra/debugbp.jpg align=center)) * **F8 :** Es para reanudar la ejecución. (hasta el siguiente breakpoint) * **F10 :** Continua con la siguiente instrucción, pero si encuentra un JSR lo ignora. * **F11 :** Continua con la siguiente instrucción, pero si encuentra un JSR se va a la subrutina hasta encontrar un RTS. (a veces llega hasta el OS) ===Desactivar PM=== Para desactivar los PM por un momento hasta el próximo VBlank de la pantalla. Escriba en la consola lo siguiente : %%e d000 0 0 0 0 0 0 0 0%%