Vous êtes sur la page 1sur 11

UNIVERSIDAD NACIONAL DEL CALLAO

FACULTAD DE INGENIERIA ELECTRICA Y ELECTRONICA


ESCUELA DE INGENIERIA ELECTRONICA

2015

ARQUITECTURA DE
COMPUTADORAS
ING. JORGE MOSCOSO
TEMA: DEBUG
INTEGRANTES:

DIONICIO ANTUNEZ GRECIA MELISSA


1223210181
CUMAPA ROQUE ERIKA MILAGROS
1123220181
CAMONES CADILLO DANIEL EDISON
1223220357

TRABAJO DE INVESTIGACION DEL DEBUG


1. INTRODUCCION:
El

"Debug" es una utilidad de MS-DOS que permite visualizar memoria,


introducir programas en ella y rastrear su ejecucin. Una caracterstica de
debug es que despliega todo el cdigo 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 lneas de cdigo

Des-ensamblar cdigo en RAM, ROM y executables

Correr paso-a-paso programas

Desplegar datos en memoria

Verificar estado de los registros del CPU

2. OBJETIVOS:

Aprender el correcto uso del puerto paralelo para poder


implementar distintos tipos de proyectos futuros con diferentes
lenguajes de programacin.
Conocer los distintos comandos de programacin que existen
para distintos tipos de funciones y as lograr infinitos resultados
al implementarlo.

3. MARCO TEORICO:
I.

CONCEPTO:

Para tener un concepto ms amplio del programa, hay que definir su


nombre.
BUG, significa fallo, defecto de programa. Un concepto muy usado en
juegos de videojuegos.
DEBUG: " significa depurar (escrutar y eliminar fallos). La palabra ha
quedado como verbo (Depurar), de la que se deriva la palabra
DEBUGGER (depurador).

Por extensin, todos los programas y utilidades que sirven para


escudriar los datos y el cdigo a bajo nivel, se identifican
genricamente con esta denominacin.
Con el depurador podemos revisar paso por paso la ejecucin de
nuestro programa, revisar cmo va modificndose el contenido de los
registros hasta ubicar donde est el error y corregirlo.
DEBUG.EXE es un ejecutable que, hasta 2001, acompa a todas las
versiones de MS-DOS, a partir del 2.0, y de Windows. Es sin duda un
programa antiguo pero de enorme potencial didctico para el
principiante.
El debug de DOS nos permite, entre otras cosas, editar archivos
ejecutables y hasta fungir como un tosco traductor de sentencias
ensamblador a lenguaje mquina.

II.

DOS TIPOS DE PROGRAMADOR


Para comprender mejor, se hacen distincin entre los programadores.
Programador de aplicaciones
Se dedica a disear aplicaciones nivel usuario, as que su mbito se
reduce al conocimiento de:
Los
registros internos del procesador,
necesarios para
manipular datos y direcciones de memoria
El repertorio bsico de instrucciones del procesador
Modos de direccionamiento
El programador de sistemas
Tiene a su haber otra misin, el diseo de sistemas lo ms ptimo
posible de explotacin de los recursos del hardware para dar soporte
a las aplicaciones previstas. Para realizar su tarea, debe conocer
Registro del sistema, indispensables para gestionar aspectos
como el modo de operacin del procesador, etc.

III.

REGISRO INTERNO DEL DEBUG

El Intel 8086, el primero de la serie x86, dispone de varios registros


que pueden clasificarse en tres grupos:

Registros de propsito general (8 registros):


- De datos:
AX: Acumulador
BX: Base
CX: Contador
DX: Datos

- Punteros:
SP: Puntero de pila
BP: Puntero de base
- ndices:
SI: ndice de origen
DI: ndice de destino
Registros de puntero de instrucciones y registro de
sealizadores
(2 registros)
IP: Puntero de Instrucciones
Sealizadores (Flags)
Registros de segmento (3 registros)
CS: Segmento de cdigo
DS: Segmento de datos
SS: Segmento de pila
ES: Segmento extendido
Estos registros constituyen el nivel del programador de aplicaciones.
Esto quiere decir que son totalmente visibles a este programador. Hay
otros registros que ya no son transparentes para el programador de
aplicaciones: los registros del sistema.

IV.

INICIALIZACION DEL PROGRAMA:


Para utilizarlo basta con teclear debug desde el MS-DOS o desde una
ventana DOS de Windows. Aunque en este ltimo caso algunas de
sus funcionalidades ms interesantes no estarn disponibles. Es
importante saber que muchos usos de estas utilidades de bajo nivel,
requieren un funcionamiento stand-alone, es decir, fuera de un
Sistema Operativo multi-usuario, ya que stos encapsulan y ocultan
(virtualizan) muchos aspectos del hardware.
Una vez que el programa est en ejecucin, el indicador ("prompt") es
un guin "-", indicando que el "Shell" espera recibir rdenes. Para
salir basta pulsar una Q. Como muchos programas de su gnero, sus
comandos empiezan por una letra o combinacin de ellas (pueden
usarse indistintamente maysculas o minsculas) y ciertos
parmetros opcionales (no es imprescindible separar la letra de
opcin de los parmetros opcionales).

V.

COMANDOS:
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 guion.

Para acceder a la ayuda escribimos "?" en donde tenemos la descripcin


de comandos:
D: DUMP
D [intervalo]

Muestra el contenido de una zona de memoria en hexadecimal y en


ASCII. Sin parmetros muestra los primeros 128 bytes a partir de la
posicin a la que se lleg en el ltimo "d". Si se le da un rango,
mostrar ese rango.
E DIRECCION: EDIT
E direccin [lista]
Permite editar, byte por byte, una zona de memoria. Muestra -en
hexadecimal- el byte de esa posicin 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 edicin se pulsa INTRO.
R: REGISTERS
R [registro]
Sin parmetros, muestra el contenido de los registros de la CPU, as
como la prxima instruccin 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 ms lo deja
como estaba.
A: ASSEMBLE
A [direccin]
Sin parmetros ensambla las instrucciones que se introduzcan,
guardndolas en la direccin siguiente a la que se lleg en el ltimo
"a". Cuando se utiliza este comando se le puede dar como parmetro
la direccin donde se desea que se inicie el ensamblado, si se omite
el parmetro el ensamblado se iniciar en la localizacin especificada
por CS:IP, usualmente 0100H, que es la localizacin donde deben
iniciar los programas con extensin .COM, y ser la localizacin que
utilizaremos debido a que debug solo puede crear este tipo especfico
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 resida no se
borra (ponindola 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 [=direccin] [nmero]
Trace puede ser incmodo si no se quiere depurar el cdigo de las
rutinas de interrupcin o si ya se sabe el cdigo que hay en las
subrutinas y tan slo interesa seguir avanzando sin entrar en ellas. En
estos casos se usa p.
T: TRACE
T [=direccin] [valor]

Una vez que el programa est en ejecucin, el indicador ("prompt") es


un guin "-", indicando que el "Shell" (
) espera recibir rdenes.
Para salir basta pulsar una Q. Como muchos programas de su gnero,
sus comandos empiezan por una letra o combinacin de ellas
(pueden usarse indistintamente maysculas o minsculas) y ciertos
parmetros opcionales (no es imprescindible separar la letra de
opcin de los parmetros opcionales que siguen). La opcin ms
sencilla es la interrogacin ?, cuyo resultado es una lista resumida de
las opciones disponibles:

ensamblar
A[direccin]
comparar
C direccin de intervalo
volcar
D [intervalo]
escribir
E direccin [lista de valores]
llenar
F lista de intervalos
ir
G [=direccin] [direcciones]
hex
H valor1 valor2
entrada
I puerto
cargar
L [direccin] [unidad] [primer_sector] [nmero]
mover
M direccin de intervalo
nombre
N [nombre_ruta] [lista_argumentos]
salida
O byte de puerto
proceder
P [=direccin] [nmero]
salir
Q
registrar
R [registrar]
buscar
S lista de intervalos
seguimiento T [=direccin] [valor]

desensamblar U [intervalo]
escribir
W [direccin] [unidad] [primer_sector] [nmero]
asignar memoria expandida
XA [#pginas]
desasignar memoria expandida
XD [identificador]
asignar pginas de memoria expandida XM [Lpgina] [Ppgina]
[identificador]
mostrar estado de la memoria expandida XS

La mayora de los comandos de debug ejecutan una accin y vuelven al


indicador del shell, pero si es un comando largo, como puede ser mostrar un
trozo grande de cdigo, puede detenerse pulsando CTRL-Pausa o
interrumpirse con CTRL-C para volver al shell.
Una caracterstica poco conocida, es que debug puede aceptar entradas
desde un fichero "Script", que puede ser un simple fichero de texto ASCII en
el que cada comando est separado del anterior por un INTRO. Despus del
ltimo, que debe ser una "Q" para salir de debug, es conveniente dejar una
lnea en blanco pulsando INTRO dos veces. Las lneas pueden contener
comentarios. Cualquier cosa a partir del carcter punto y coma (;) hasta el
final de la lnea, ser ignorado.
; Esto es un comentario
D ; aqu se mostrar algo...
Suponiendo que tengamos un fichero "Script" de nombre Ordenes.txt,
puede ser utilizado como entrada para debug mediante un comando de
redireccin en la siguiente forma:
DEBUG < Ordenes.txt
Tambin puede conseguirse que el programa redirecciones la salida hacia
un fichero que puede ser inspeccionado ms tarde.
Aunque tiene la
dificultad de tener que trabajar "a ciegas", puede ser de utilidad en
determinadas circunstancias. Por ejemplo, cuando se desea un volcado de
determinadas zonas de la memoria. En el caso anterior podra obtenerse un
fichero Result.txt con el siguiente comando:
DEBUG < Ordenes.txt > Result.txt
VI.

ERRORES

4. MATERIALES:
PROTOBOARD

DISPLAY (ANODO)

LEDS

RESISTENCIAS Y

CABLES PARA PROTOBOARD

PUERTO

CEREAL

5.

APLICACIN
CON EL DEBUG:
Hemos realizado una programacin asembler con l
utilizacin del puerto paralelo combinando distintos
comandos como el creciente (Inc) y el decreciente
como (dec) de 4 bits.

6. GALERIA:

7. CONCLUSIONES:
Gracias a este proyecto realizado hemos aprendido
el uso que le podemos dar al puerto paralelo para
distintos tipos de lenguaje de programacin ya sea
cmo assembler, c++ entre otros.
Nos dimos cuenta que existen distintos tipos de
comandos de programacin que nos permiten
realizar distintas operaciones ya sea como el
incremento que nos permite realizar una
programacin ascendente o el decremento que nos
permite realizar una programacin numrica
descendente o combinar ambos como muestra
nuestro proyecto realizado.
La implementacin de este tipo de programacin
para proyectos futuros en nuestra carrera es un
tema muy interesante para nuestra investigacin.

Vous aimerez peut-être aussi