Manual Debug
Enviado por raysamson • 28 de Julio de 2013 • 5.881 Palabras (24 Páginas) • 520 Visitas
Licenciatura en informática
Administrativa
Materia: compiladores
Trabajo: manual debug ms dos
Asesor(a): Lic. Marcela Hernández Juárez
Asesorado: Ray Samson Medina Franco
Noveno cuatrimestre
Julio del 2013
Índice
TEMA pagina
INTRODUCCIÓN 3
JUSTIFICACIÓN 3
OBJETIVOS 3
DESARROLLO 4
ASSEMBLE
DUMP
DIRECCION: EDIT 5
7
8
GO 10
HEX
LOAD
MOVE
NAME 11
12
15
15
STEP 15
QUIT 16
REGISTERS 16
TRACE
UNASSEMBLE
WRITE
AYUDA? 18
21
22
22
EJEMPLO COMPLETO 23
CONCLUCION 33
BIBLIOGRAFÍA 33
INTRODUCCIÓN
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 ejecutables
Correr paso-a-paso programas
Desplegar datos en memoria
Verificar estado de los registros del CPU
JUSTIFICACION
El uso de debug es con la finalidad de observar el comportamiento de los registros del CPU 80386.
Recordemos que los registros de esta arquitectura son un subconjunto elemental de aquellos presentes en modelos más modernos de la familia '86.
Usando DEBUG es posible observar el comportamiento de las instrucciones, la forma cómo éstas afectan a las banderas, los contenidos de la memoria, el código de las instrucciones; además permite ensamblar código elemental usando los mnemotécnicos del 8086.
OBJETIVO
Podernos desenvolver de una forma satisfactoria con debug dentro de nuestro ordenador y así poder ejecutar los comandos y las líneas de código para poder observar el comportamiento de la memoria en un lenguaje muy bajo.
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 ha 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 <dirección>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 movax, bx
Arquitectura y Tecnología de los Computadores.
Departamento de Automática.
Universidad de Alcalá.
Laboratorio de Estructura de Computadores - 2-
2048:0108 movbx,cx
2048:010A
-u 106 108
2048:0106 89D8 MOV AX,BX
2048:0108 89CB MOV BX,CX
Como veremos más adelante, la instrucción 'U' sirve para hacer volcados de memoria, pero no
Viendo el contenido de la misma, sino interpretándola como instrucciones en lenguaje
Ensamblador.
; Ejemplo 2
-r cs
CS 2048
: 2050
-a 200
2050:0200 movax, bx
2050:0202
-u 200 200
2050:0200 89D8 MOV AX, BX
D: DUMP
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.
Parámetros: <dir_1>; Dirección de comienzo del volcado [<dir_2>];
...