Trabajo de Investigacion Del Debug

11
UNIVERSIDAD NACIONAL DEL CALLAO FACULTAD DE INGENIERIA ELECTRICA Y ELECTRONICA ESCUELA DE INGENIERIA ELECTRONICA ARQUITECTURA DE COMPUTADORAS ING. JORGE MOSCOSO TEMA: DEBUG INTEGRANTES: DIONICIO ANTUNEZ GRECIA MELISSA 1223210181 CUMAPA ROQUE ERIKA MILAGROS 1123220181 CAMONES CADILLO DANIEL EDISON 1223220357 2015

description

debug

Transcript of Trabajo de Investigacion Del Debug

arquitectura de computadoras

UNIVERSIDAD NACIONAL DEL CALLAO FACULTAD DE INGENIERIA ELECTRICA Y ELECTRONICAESCUELA DE INGENIERIA ELECTRONICA

TRABAJO DE INVESTIGACION DEL DEBUG1. INTRODUCCION:El "Debug" es unautilidadde MS-DOS que permite visualizarmemoria, introducirprogramasen ella y rastrear su ejecucin. Una caracterstica de debug es que despliega todo el cdigo delprogramaen 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 unSistema Operativomulti-usuario, ya que stos encapsulan y ocultan muchos aspectos delhardware.Debug es til para:

Ensamblar pocas lneas de cdigo Des-ensamblar cdigo enRAM, ROM y executables Correr paso-a-paso programas Desplegardatosen memoria Verificarestadode 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 sistemasTiene 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: AcumuladorBX: BaseCX: ContadorDX: 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 InstruccionesSealizadores (Flags) Registros de segmento (3 registros)CS: Segmento de cdigoDS: Segmento de datosSS: Segmento de pilaES: Segmento extendidoEstos 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 deWindows, tipeando Debug. Luego aparcera el prompt que es un guion.Para acceder a la ayuda escribimos "?" en donde tenemos la descripcin de comandos: D: DUMPD [intervalo]Muestra el contenido de una zona de memoria en hexadecimal y en ASCII. Sin parmetrosmuestralos 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: EDITE direccin [lista]Permite editar, byte por byte, una zona de memoria. Muestra -en hexadecimal- el byte de esa posicin y permite escribir otrovalorpara 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: REGISTERSR [registro]Sin parmetros, muestra el contenido de los registros de laCPU, 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: ASSEMBLEA [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: FILLF [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 esbasuradel anterior. Q: QUITQSalir de debug y volver al DOS. P: STEPP [=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: TRACET [=direccin] [valor]

Una vez que elprogramaest en ejecucin, el indicador ("prompt") es un guin "-", indicando que el "Shell" () espera recibir rdenes. Para salir basta pulsar unaQ. Como muchosprogramasde sugnero, suscomandosempiezan 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 intervalovolcar D [intervalo]escribir E direccin [lista devalores]llenar F lista de intervalosir G [=direccin] [direcciones]hex H valor1 valor2entrada I puertocargar L [direccin] [unidad] [primer_sector] [nmero]mover M direccin de intervalonombre N [nombre_ruta] [lista_argumentos]salida O byte de puertoproceder P [=direccin] [nmero]salir Qregistrar R [registrar]buscar S lista de intervalosseguimiento T [=direccin] [valor]desensamblar U [intervalo]escribir W [direccin] [unidad] [primer_sector] [nmero]asignarmemoriaexpandida XA [#pginas]desasignar memoria expandida XD [identificador]asignar pginas de memoria expandida XM [Lpgina] [Ppgina] [identificador]mostrarestadodela memoriaexpandida XS

La mayora de los comandos dedebugejecutan unaacciny vuelven al indicador del shell, pero si es un comando largo, como puede ser mostrar un trozo grande decdigo, puede detenerse pulsando CTRL-Pausa o interrumpirse con CTRL-C para volver al shell.Una caracterstica poco conocida, es quedebugpuede aceptar entradas desde un fichero "Script", que puede ser un simple fichero detextoASCIIen el que cada comando est separado del anterior por un INTRO. Despus del ltimo, que debe ser una "Q" para salir dedebug, es conveniente dejar una lnea en blanco pulsando INTRO dos veces. Las lneas pueden contener comentarios. Cualquier cosa a partir del carcterpunto y coma (;) hasta el final de la lnea, ser ignorado.; Esto es un comentarioD ; aqu se mostrar algo...Suponiendo que tengamos un fichero "Script" de nombre Ordenes.txt, puede ser utilizado como entrada paradebugmediante un comando de redireccin en la siguiente forma:DEBUG < Ordenes.txtTambin 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 deutilidaden 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.txtVI. 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.