Depuración de un programa en ensamblador

Tras programar un programa en ensamblador, hay que ensamblarlo. Al hacer esto, lo normal es que el ensamblador señale errores que habrá que corregir. En realidad, es un proceso iterativo: se programa, se ensambla, se corrige, se programa, se ensambla, se corrige, etc.

Llegará un punto en que todos los errores de ensamblado se hayan corregido y el programa ya se ensamble bien, lo cual tampoco significa que el programa sea correcto. Para determinar si el programa es correcto, es decir, que hace lo que se espera de él, hay que probarlo.

En ocasiones, lo probaremos y llegaremos a la conclusión de que el programa es correcto. En otras ocasiones, en cambio, detectaremos algún error de funcionamiento (no ya de ensamblado).

Si detectamos un error de funcionamiento, lo ideal es que sea obvio en qué parte del código está el error. En tal caso, volveremos al código fuente, lo cambiaremos, y repetiremos el proceso.

Lamentablemente, en muchas ocasiones no será fácil localizar el error de funcionamiento, y tendremos que recurrir al depurador (Debugger) de CBM prg Studio para localizarlo. Básicamente, lo que nos permite el depurador es hacer una ejecución paso a paso, viendo el impacto que cada instrucción tiene sobre el C64 (en la memoria, en los registros del microprocesador, en la pantalla, etc.).

Para ejecutar el depurador hay que ir al menú Debugger > Debug project. Se abrirán las siguientes ventanas:

Debugger

La ventana más importante es la llamada “Debugger”. En esa ventana se ven los registros del microprocesador con sus valores (el contador de programa, el acumulador, el registro X, el registro Y, etc.). También se ve una zona de memoria con el código máquina que tiene cargado. En ese código máquina, además de las instrucciones y sus operandos, se ven las etiquetas, lo que facilita la lectura del código.

Sobre esta ventana, pulsando F7, se puede ejecutar instrucción a instrucción, e ir observando su efecto sobre los registros y/o la memoria. También se puede cambiar la instrucción que se va a ejecutar (el contador de programa) pulsando F6, para ir directamente a la instrucción o la zona del código que sea de interés.

Otras ventanas de interés son la “Watch list” (lista de variables o posiciones de memoria cuyos valores se muestran ahí para facilitar su supervisión), la pila o “Stack” (puntos de retorno de las llamadas a subrutinas), los puntos de ruptura o “Breakpoints” (puntos donde se para la ejecución para facilitar la inspección), o la memoria de vídeo (para observar cómo va cambiando la pantalla).

En definitiva, el depurador de CBM prg Studio es una herramienta muy útil para analizar en detalle por qué un programa no funciona como esperamos.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s