- 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ódigoDes-ensamblar código en RAM, ROM y
executablesCorrer 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 |