- Introducción: Debug
- Teoría: Comandos de Debug
- Método experimental y resultados
- Conclusiones
- Bibliografía
Resumen
En este laboratorio se hizo la introducción y reconocimiento de comandos de una de las utilidades de MS-DOS llamada "Debug". Se ingresó a la aplicación a través de la ventana de comandos de MS-DOS y digitamos el símbolo "?" para ver la descripción de los comandos de debug.
Se visualizaron registros internos con el comando "D" y se asignó como prueba unos valores decimales y caracteres usando su código ASCII a otros con "E".
Introducción: Debug
El "Debug" es una utilidad de MS-DOS que permite visualizar memoria, introducir programas en ella y rastrear su ejecución. Una característica de debug es que despliega todo el código del programa en formato hexadecimal.
Es importante saber que muchos usos de este tipo de utilidades de bajo nivel, requieren un funcionamiento stand-alone, es decir, fuera de un Sistema Operativo multi-usuario, ya que éstos encapsulan y ocultan muchos aspectos del hardware.
Debug es Útil para:
Ensamblar pocas líneas de código
Des-ensamblar código en RAM, ROM y executables
Correr paso-a-paso programas
Desplegar datos en memoria
Verificar estado de los registros del CPU
Teoría: Comandos de Debug
El ingreso a "Debug" se realiza de forma sencilla a partir de la ventana de comandos de Windows, tipeando Debug. Luego aparcera el prompt que es un guión.
Para acceder a la ayuda escribimos "?" en donde tenemos la descripción de comandos, entre los que usaremos en el presente laboratorio:
D: DUMP
D [intervalo]
Muestra el contenido de una zona de memoria en hexadecimal y en ASCII. Sin parámetros muestra los primeros 128 bytes a partir de la posición a la que se llegó en el último "d". Si se le da un rango, mostrará ese rango.
E DIRECCION: EDIT
E dirección [lista]
Permite editar, byte por byte, una zona de memoria. Muestra -en hexadecimal- el byte de esa posición y permite escribir otro valor para cambiarlo. Pulsando espacio pasa al byte siguiente, dejando como estaba el anterior si no se ha cambiado, o guardando los cambios si sí se ha hecho. Para terminar la edición se pulsa INTRO.
R: REGISTERS
R [registro]
Sin parámetros, muestra el contenido de los registros de la CPU, así como la próxima instrucción a ejecutar."R [REGISTRO]" muestra el contenido del registro especificado y cambia el prompt de "-" a ":" invitando a que se cambie su valor. Pulsando Enter sin más lo deja como estaba.
A: ASSEMBLE
A [dirección]
Sin parámetros ensambla las instrucciones que se introduzcan, guardándolas en la dirección siguiente a la que se llegó en el último "a". Cuando se utiliza este comando se le puede dar como parámetro la dirección donde se desea que se inicie el ensamblado, si se omite el parámetro el ensamblado se iniciará en la localización especificada por CS:IP, usualmente 0100H, que es la localización donde deben iniciar los programas con extensión .COM, y será la localización que utilizaremos debido a que debug solo puede crear este tipo específico de programas.
F: FILL
F [lista de intervalos]
Llena una zona de memoria con un valor determinado. Como al terminar un programa la zona de memoria en que se residía no se borra (poniéndola a cero, por ejemplo), a menudo es útil para distinguir entre lo que son datos del programa actual y lo que es basura del anterior.
Q: QUIT
Q
Salir de debug y volver al DOS.
P: STEP
P [=dirección] [número]
Trace puede ser incómodo si no se quiere depurar el código de las rutinas de interrupción o si ya se sabe el código que hay en las subrutinas y tan sólo interesa seguir avanzando sin entrar en ellas. En estos casos se usa p.
T: TRACE
T [=dirección] [valor]
Página siguiente |