Arquitectura y Tecnología de los Computadores. Departamento de Automática. Universidad de Alcalá. Laboratorio de Estructura de Computadores - 1- MANUAL BREVE DE “DEBUG” Se trata de una utilidad muy poco amigable, sin menús y -sólo en versiones recientes- con ayuda mínima, pero una vez aprendidos unos cuantos comandos es extremadamente potente. Hay quien lo considera como el mejor programa que ha hecho Microsoft. Debug, invocado sin parámetros, se carga y pasa a mostrar un lacónico guión, a la espera de órdenes del usuario. Todas -a excepción de las relativas a operaciones con memoria expandida, que no se verán aquí- constan de una única letra seguida o no de parámetros. Si se va a desensamblar un programa, se le puede indicar a debug que lo cargue también tras cargarse él escribiendo: debug nombre-del-programa argumentos-del-programa C:\> Debug [Enter] En la siguiente línea aparecerá un guión, éste es el indicador del Debug, en este momento se pueden introducir las instrucciones del Debug. Utilizando los comandos: A: ASSEMBLE 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. También se le puede decir qué zona se desea ver con a <direccion> pudiendo ser la dirección absoluta (a segmento:desplazamiento) o relativa al segmento de código actual (a desplazamiento). Parámetros : <dir_comienzo> Resultados : se pueden escribir instrucciones en ensamblador a partir de la dirección de memoria CS:<dir_comienzo>, hasta que se pulse INTRO. Si no especificamos el parámetro <dir_comienzo> se toma como dirección de inicio CS:IP Ejemplo : Vamos a usar la instrucción MOV, que como veremos más adelante, sirve para copiar datos de la memoria a los registros y viceversa, además de copiar datos entre registros, que es justo lo que vamos a usar en el ejemplo. -a 2048:0106 mov ax,bx