Está en la página 1de 14

PRCTICA 2

INTRODUCCIN AL DEPURADOR SIMBLICO DEL 8086: TURBO DEBUGGER

OBJETIVO
Al terminar esta prctica, el alumno ser capaz de: Ejecutar un programa usando el depurador simblico Turbo Debugger

ITSON

Manuel Domitsu Kono

12

Introduccin al Depurador Simblico del 8086: Turbo Debugger

ANTECEDENTES TERICOS
Un depurador simblico es una herramienta de software que nos permite ejecutar un programa ejecutable instruccin por instruccin al mismo tiempo que nos muestra el cdigo fuente del programa. El depurador simblico nos permite accesar a las variables del programa mediante los nombres de las variables usados en el programa fuente y no slo por sus direcciones. Podemos variar el contenido de las variables mientras el programa est en ejecucin y observar el efecto de esos cambios en el programa y en otras variables. Turbo Debugger de Borland International es un depurador simblico que permite la ejecucin de programas escritos en ensamblador, C y Pascal.

DESARROLLO
1. Abra una ventana de DOS. 2. Verifique que los directorios c:\tc, c:\tasm y c:\td estn en la lista de rutas de bsqueda del sistema operativo. De no aparecer los tres directorios mencionados hay que incluirlos en el archivo AUTOEXEC.BAT y ejecutar este archivo por lotes para que tenga efecto. Vea los pasos 2 a 7 del DESARROLLO de la PRCTICA 1. 3. Inserte el disquete de trabajo en la unidad de disco A y cambie la unidad de disco por ausencia a la unidad A, tecleando: a: 4. Desde la unidad de disco A, llame al depurador Turbo Debbuger tecleando td primer En el monitor aparecer lo mostrado en la figura 2-1. sta es la pantalla inicial de Turbo Debugger. En la pantalla aparece una ventana llamada Ventana del CPU que muestra del lado izquierdo el cdigo fuente del programa, del lado derecho el estado de los registros del microprocesador y en la parte inferior izquierda un vaciado de parte del segmento de datos del programa. Aunque podemos depurar el programa usando esta ventana, utilizaremos otro procedimiento que muestra la misma informacin en otro formato. Presione [F3] para borrar esta ventana. La tecla [F3] nos elimina de la pantalla la ventana activa. 5. Primero colocaremos una ventana llamada Ventana de Registros que muestra el estado de los registros del microprocesador. Para ello seleccione del men principal la opcin View presionando [Alt][V]. En la pantalla aparecer el men mostrado en la figura 2-2.

ITSON

Manuel Domitsu Kono

Prctica 2

Introduccin al Depurador Simblico del 8086: Turbo Debugger

13

Figura 2-1

Figura 2-2 6. De este men seleccione la opcin Registers presionando [R]. Aparecer la Ventana de Registros , tal como se muestra en la figura 2-3. 7. Moveremos esta ventana a la esquina superior derecha de la pantalla. Para hacer esto seleccionaremos del men principal la opcin Window, presionando [Alt][W]. Aparecer el men mostrado en la figura 2-4.

ITSON

Manuel Domitsu Kono

14

Introduccin al Depurador Simblico del 8086: Turbo Debugger

Figura 2-3

Figura 2-4 De este men seleccionaremos la opcin Move/Resize , presionando la tecla [M]. Aparecer lo mostrado en la figura 2-5. Para mover la ventana utilizaremos las teclas del cursor: [ ], [ ], [ ], [ ] que movern la ventana en la direccin de las flechas. Para cambiar el tamao de la ventana se utilizan las combinaciones de teclas: [Mayus][ ] para aumentar su tamao horizontalmente, [Mayus][ ] para reducir su tamao horizontalmente, [Mayus][ ] para reducir su tamao verticalmente y [Mayus][ ] para aumentar su tamao verticalmente. 8. Mueva la Ventana de Registros hacia la esquina superior derecha y redzcala verticalmente dos renglones para que quede como en la figura 2-6.

ITSON

Manuel Domitsu Kono

Prctica 2

Introduccin al Depurador Simblico del 8086: Turbo Debugger

15

Figura 2-5

Figura 2-6 9. A continuacin colocaremos una segunda ventana llamada Ventana de Mdulo, que nos muestra el cdigo fuente del programa. Para ello seleccione de nuevo del men principal la opcin View presionando [Alt][V]. Del men que aparece seleccione la opcin Module presionando [M]. Aparecer un recuadro con la lista de los mdulos de cdigo fuente del programa, figura 2-7. En este caso, solo hay un mdulo. Presione [Enter] para seleccionarlo. Aparece la Ventana de Mdulo con el cdigo fuente. Muvala y cambie su tamao para que quede como se muestra en la figura 2-8.

ITSON

Manuel Domitsu Kono

16

Introduccin al Depurador Simblico del 8086: Turbo Debugger

Figura 2-7

Figura 2-8 10. Por ltimo, colocaremos la Ventana de Inspeccin, para observar las variables del programa. Para ello seleccione de nuevo del men principal la opcin View presionando [Alt][V]. Del men que aparece seleccione la opcin Watches presionando [W]. Aparece la Ventana de Inspeccin. Muvala y cambie su tamao para que quede como se muestra en la figura 2-9. 11. Guardaremos esta configuracin de ventanas para que est disponible para otras sesiones y no tengamos que crearla de nuevo. Seleccione del men principal la opcin Options presionando [Alt][O]. Aparecer el men mostrado en la figura 2-10.

ITSON

Manuel Domitsu Kono

Prctica 2

Introduccin al Depurador Simblico del 8086: Turbo Debugger

17

Figura 2-9

Figura 2-10 12. Seleccionar la opcin Save options presionando [S]. Aparece otro men como se muestra en la figura 2-11. 13. Seleccione la opcin All, presionando la tecla [A]. Aparece un recuadro como se muestra en la figura 2-12 pidindonos el nombre de un archivo en donde se almacenar la configuracin. El nombre por ausencia del archivo de configuracin es TDCONFIG.TD . Presione [Enter] para aceptar ese nombre. Como el directorio de trabajo es el directorio raz de su disco en la unidad A, cada vez que cargue el programa Turbo debugger desde ese directorio, se cargar tambin esa configuracin.

ITSON

Manuel Domitsu Kono

18

Introduccin al Depurador Simblico del 8086: Turbo Debugger

Figura 2-11

Figura 2-12 14. A continuacin desplegaremos en la ventana Inspeccin las variables del programa para observar como cambian su valor al ir ejecutando el programa. Para ello presionamos [Ctrl][F7]. Aparecer un recuadro como se muestra en la figura 2-13. Teclearemos: dato1

ITSON

Manuel Domitsu Kono

Prctica 2

Introduccin al Depurador Simblico del 8086: Turbo Debugger

19

Figura 2-13 que es el nombre de la primera variable del programa. En la ventana Inspeccin aparecer el nombre de la variable seguido de su tipo que es byte, as como su valor inicial, expresado como carcter, en decimal y en hexadecimal, tal como se muestra en la figura 2-14. Turbo Debugger inicializa a las variables no inicializadas a cero. Note que la lnea en la que aparece la variable est resaltada. Presione la tecla del cursor [ ] y la lnea resaltada ser la siguiente.

Figura 2-14 15. Repita el paso 14 para colocar en la Ventana de Inspeccin a las otras variables del programa: dato2 y resul.

ITSON

Manuel Domitsu Kono

20

Introduccin al Depurador Simblico del 8086: Turbo Debugger

16. Antes de ejecutar el programa les asignaremos los valores de 5h y 6h a las variables dato1 y dato2, respectivamente. Para ello, primero colocaremos la lnea resaltada sobre la variable dato1. Presione las teclas [Ctrl][C]. Aparecer un recuadro tal como se muestra en la figura 2 -15, pidindonos el nuevo valor de la variable dato1.

Figura 2-15 Teclearemos: 5 El nuevo valor de la variable dato1 aparecer en la Ventana de Inspeccin, como se muestra en la figura 2-16.

Figura 2-16

ITSON

Manuel Domitsu Kono

Prctica 2

Introduccin al Depurador Simblico del 8086: Turbo Debugger

21

Al introducir el valor de 5h en la variable dato1 no fue necesario teclear la letra h para indicar que el valor es en hexadecimal. Por ausencia los valores tecleados en esta ventana son hexadecimales. Por otro lado, todos los nmeros hexadecimales deben empezar con uno de los dgitos 0 - 9. Por lo que para introducir un valor hexadecimal que comience con A - F debemos precederlo con un cero (0). Por ejemplo si deseamos introducir el valor de Ah, 10 en decimal, deberemos teclear 0A. Para introducir nmeros en otra base se debern usar sufijos: d para decimal y b para binario. 17. Repita el paso anterior para cambiar el valor de dato2 a 6h. 18. A continuacin se ejecutar el programa. Para ello haremos a la Ventana de Mdulo, la ventana activa. Note que cada ventana tiene en su esquina superior derecha, sobre el marco, su nmero. Esos nmeros se asignan conforme se van abriendo o cerrando las ventanas. Para hacer una ventana la ventana activa presionaremos: [Alt][n] donde n es el nmero de la ventana que deseamos sea la activa. En este caso teclearemos [Alt][2], el marco de la Ventana de Mdulo cambiar de sencillo a doble para indicar que es la ventana activa y el cursor aparecer al principio del cdigo fuente. 19. Presione la tecla del cursor [ ] para desplazar el cursor hacia abajo hasta que quede sobre la primera instruccin del programa, en la lnea siguiente a la etiqueta Inicio. Tal como se muestra en la figura 2-17.

Figura 2-17 Note que a la izquierda de la primera instruccin del programa se encuentra un pequeo tringulo. Este tringulo al que llamaremos marcador de instruccin es un equivalente grfico del registro de apuntador de instruccin ya que indica que la instruccin en esta lnea ser la siguiente a ser ejecutada.

ITSON

Manuel Domitsu Kono

22

Introduccin al Depurador Simblico del 8086: Turbo Debugger

Observe en la Ventana de Registros el valor del registro AX. El valor ser diferente al valor mostrado en la figura 2-17 ya que vara de computadora a computadora y de corrida a corrida. Observe tambin el valor del registro IP, el contador del programa tiene el valor de cero. 20. Para ejecutar una instruccin presione la tecla [F8]. Aparece lo mostrado en la figura 2-18. Note como el marcador de instruccin se mueve a la siguiente lnea del cdigo fuente y que el registro AX cambi su valor. El nuevo valor de AX es la direccin del segmento de datos, ya que la instruccin: mov ax, @data

carga en el registro AX el valor dado por el smbolo predefinido @data, que Turbo Assembler define como la direccin de inicio del segmento de datos. El valor de @data no se le asigna en el momento del ensamble ni en el ligado sino hasta el momento de ejecucin ya que es hasta ese momento en que se sabe en que lugar de la memoria queda el programa. Tambin el valor del registro IP se habr incrementado para apuntar a la siguiente instruccin.

Figura 2-18 21. Presione de nuevo la tecla [F8] para ejecutar la siguiente instruccin: mov ds, ax

Note como el valor del registro AX se copi al registro DS, esto es inicializamos el registro de segmento de datos al inicio del segmento de memoria que contiene los datos del programa. 22. Presione [F8]. Observe que ahora la instruccin: mov al, [dato1]

ITSON

Manuel Domitsu Kono

Prctica 2

Introduccin al Depurador Simblico del 8086: Turbo Debugger

23

carga en el registro AL el valor de la variable dato1. En la Ventana de Registros podemos ver que los dos ltimos dgitos del registro AX que corresponden al registro AL, han cambiado a 05 que es el valor almacenado en la variable dato1. 23. Vuelva a presionar [F8]. La instruccin: add al, [dato2]

le suma al contenido del registro AL el valor almacenado en la variable dato2. El registro AL tiene ahora el valor de 0B ya que 5h + 6h = Bh. 24. Vuelva a presionar [F8]. La instruccin: add al, cte

le suma al contenido del registro AL el valor dado por la constante simblica cte definida por la directiva equ como 10. El registro AL tiene ahora el valor de 15 (Bh + Ah = 15h). 25. Vuelva a presionar [F8]. La instruccin: mov resul, al

guarda el contenido del registro AL en la variable resul. Note que en la Ventana de Inspeccin la variable resul muestra el valor de 21 (15h), figura 2-19.

Figura 2-19 Presionando [F8] dos veces ms, cargamos en el registro AH el valor de 4Ch y en el registro AL el valor de la variable codsal que representa el cdigo de terminacin del programa. Por ltimo al presionar [F8] una vez m s llamamos a la interrupcin del DOS que termina la ejecucin del programa. En la pantalla veremos el mensaje mostrado en la figura 2-20.

ITSON

Manuel Domitsu Kono

24

Introduccin al Depurador Simblico del 8086: Turbo Debugger

Figura 2-20 26. Para ejecutar el programa de nuevo presione las teclas [Ctrl][F2]. El registro IP se reinicializa a 0, lo mismo que las variables del programa. Vuelva a ejecutar el programa haciendo que las variable dato1 y dato2 tomen los valores 25h y A0h. 27. Salga del programa Turbo debugger presionando las teclas [Alt][X].

ITSON

Manuel Domitsu Kono

También podría gustarte