tdebug

32
Turbo Debugger Para Ensamblador

description

Presentacion de la ocnfiguracion del debug del tasm 50

Transcript of tdebug

Page 1: tdebug

Turbo Debugger

Para Ensamblador

Page 2: tdebug

Instalación TD

Se selecciona el archivo TurboDebugger y se siguen los pasos de la instalación..

Page 3: tdebug

Instalación TD

Page 4: tdebug

Instalación TD

Esta ventana pregunta si quieren reemplazar el TD ya instalado, oprimen Yes to All.

Page 5: tdebug

Turbo Debugger

Ahora, hay dos formas de ejecutar el TD, una es: Inicio Ejecutar teclear cmd Se accede a la ventana del símbolo del sistema. Después se debe ir a la ruta C:\TASM\BIN

Page 6: tdebug

Turbo Debugger

Y para ejecutar el Turbo Debugger se teclea TD

Page 7: tdebug

Turbo Debugger O hay otra opción, por medio del editor Context, se

puede configurar una tecla o llave para tener acceso al TD mientras se teclea el programa en el editor, las modificaciones al editor son las siguientes:

Page 8: tdebug

Turbo Debugger

En la tecla F9 se deben modificar los parámetros en el Compilador agregando como parámetro /zi, zi, después solo se oprime “Apply”

Page 9: tdebug

Turbo Debugger Ahora se configura la tecla correspondiente a F11, donde solo

pondremos un acceso directo al TD, dentro de la ventana de configuración se selecciona F11 y a la derecha en el primer campo se busca el archivo del Turbo debugger en la ruta C:\TASM\BIN\TD32

Page 10: tdebug

Turbo Debugger En el siguiente campo “Star in” se teclea %p%p, para cualquier

modificación se guarde en la carpeta donde está el programa en ensamblador

Después en “parameters” se teclea %F.exe%F.exe, con esto le asignamos el programa en ensamblador pero sin extensión, y por lo tanto le tecleamos la extensión del archivo que debe tomar.

Se le propone una etiqueta de identificación en “Hint” Y se termina la configuración….

Page 11: tdebug

Turbo Debugger Después se teclea el programa en el editor, se guarda

con extensión .asm.asm Se compila Se enlaza

Page 12: tdebug

Turbo Debugger

En seguida, teniendo un programa que NO tiene errores, se oprime la tecla F11 para mandar llamar al Turbo Debugger:

Page 13: tdebug

Turbo Debugger Enseguida se puede observar que nuestro programa se encuentra

en el turbo debugger, ya se “cargó”, entonces para ir paso a paso verificando las variables y movimientos, se debe oprimir F7, en cuanto se orpimer, la linea que se indica en texto blanco se irá ejecutando

Page 14: tdebug

Turbo Debugger Estas son las partes del TD

Línea en ejecución, se puede ver una pequeña flecha indicando la línea.

Pila

Direcciones de memoria.

Banderas

Registros

Page 15: tdebug

Turbo Debugger mov eax,65hmov eax,65h

Page 16: tdebug

Turbo Debugger Se puede ver el registro EAX a la derecha, con su valor 65hSe puede ver el registro EAX a la derecha, con su valor 65h mov var1,eaxmov var1,eax Donde var1 tiene la dirección 00402004, que es lo que

muestra el TD

Page 17: tdebug

Turbo Debugger Pero como saber si realmente si la var1 tiene

el valor que se copió desde el registro EAX? Primero se va al menú, se selecciona “View” y

después se selecciona “Dump”

Page 18: tdebug

Turbo Debugger Aparecerá una ventana, donde muestra las direcciones

de memoria, entonces, la var1 se indica como [00402004], para ir a esa dirección se oprime el botón derecho del mouse y se selecciona “Goto”

Page 19: tdebug

Turbo Debugger En el recuadro que aparece, se teclea la

dirección de la variable y se orpime “OK”

Page 20: tdebug

Turbo Debugger Se puede observar como en la dirección

aparecerá el valor asignado a var1

Page 21: tdebug

Turbo Debugger La dirección indicada corresponde al primer par de Bytes

ordenados Un solo 0 (cero) indica un byte por lo tanto 00 indica dos bytes El orden es secuencial por fila

00402005 0040200A

0040206A00402066

Page 22: tdebug

Turbo Debugger mov ebx, OFFSET var2 OFFSET: obtener la dirección de memoria de la var2 La dirección correspondiente es [00402008]

Page 23: tdebug

Turbo Debugger Después se copia en el registro EBX,

entonces en EBX está la dirección de var2

Page 24: tdebug

Turbo Debugger mov WORD PTR[ebx],0FFhmov WORD PTR[ebx],0FFh Se copia 0FFh en el espacio equivalente a una WORD o palabra

en memoria (16 bits) PTR (apuntador) apunta a la dirección contenida en el registro

EBX, donde buscará copiar el numero hexadecimal en 16 bits Se realiza lo mismo que con la var1, se selecciona “Dump” y se

busca la dirección de que se copió en el contenido de EBX (var2) que es [0040200800402008]

Page 25: tdebug

Turbo Debugger

En la dirección de var2 o bien ahora el contenido de EBX [0040200800402008] se encuentra FFh

Page 26: tdebug

Turbo Debugger

mov WORD PTR[ebxmov WORD PTR[ebx+2+2],03Fh],03Fh Se copia 03Fh en el espacio equivalente a una

WORD o palabra en memoria (16 bits) PTR (apuntador) apunta a la dirección

contenida en el registro EBX, donde buscará copiar el numero hexadecimal en 16 bits MAS 2 bytes más donde el apuntador deberá recorrerse entonces 2 bytes má sen la dirección de memoria

Se selecciona “Dump” y se busca la dirección de que se copió en el contenido de EBX (var2) + 2 bytes que es [00402008 + 200402008 + 2] = [004020A]

Page 27: tdebug

Turbo Debugger [00402008 + 200402008 + 2] = [004020A]

00402008 0040200A

Page 28: tdebug

Turbo Debugger

Después el ensamblador termina el programa

Page 29: tdebug

Turbo Debugger

Llama al proceso ExitProcess…..

Page 30: tdebug

Turbo Debugger

Para terminar la ejecución del programa se detiene con la selección en el

Menú Run Program reset (Ctrl-F2)

Page 31: tdebug

Turbo Debugger

Para salir del TD, solo se selecciona File Quit (Alt-x)

Page 32: tdebug

Turbo Debugger