You are on page 1of 12

ESCUELA SUPERIOR POLITCNICA DEL LITORAL

Prctica # 1 Tema: Familiarizacin con Debug Paralelo: 2 Grupo #: 2 Nombres: Adriana Aguirre Diego Arvalo Fecha de ejecucin de la prctica: 16 de Octubre del 2012

2012- II trmino

1. ENUNCIADO DE LA PRACTICA
En esta prctica se realizaron varios ejercicios utilizando la herramienta DEBUG para familiarizarse con los comandos que nos permiten examinar y alterar el contenido de registros de trabajo, localidades de memoria, registro de banderas, y ejecucin de instrucciones. Adems, esta herramienta nos permite correr paso a paso programas y ensamblar lneas de cdigo. DEBUG forma parte del sistema operativo MS-DOS bajo Windows. La herramienta DEBUG es til para entender el funcionamiento de un microprocesador. Muchas tareas elementales pueden realizarse con el DEBUG usando algunos comandos bsicos. Se utiliz el DEBUG usando la computadora virtual y Windows XP mode. Los comandos del DEBUG son los siguientes:

2. EJERCICIOS
EJERCICIO 1: Instruccin de suma ADD: Ahora, vamos a instruir al procesador para que ejecute la suma de dos cantidades colocando instrucciones de mquina en el segmento de cdigo. La operacin deseada es AX AX + BX. Con el comando A ensamble las 5 instrucciones siguientes en CS: 100. NOP MOV MOV ADD NOP AX, 89AB BX, 1DEF AX, BX

Observe que el registro AX se inicializa con 89AB y BX con 1DEF. Con el comando T ejecute paso a paso las 5 instrucciones. Antes de ejecutar T asegure que IP contenga el valor 100, es decir que apunte a la primera instruccin NOP.

Cul es el resultado de la suma que la instruccin ADD deja en el operando destino AX? AX= A79A H Verifique la suma hexadecimal manualmente: 89AB + 1DEF =

EJERCICIO 2: Suma de un dato en CPU con un dato residente en memoria. Ahora, sumemos el dato 4325 hex residente en la localidad de memoria DS: 200, con un dato en el registro AX. Para ingresar 4325 hex al segmento de datos use el comando E, ste comando espera el ingreso de un byte, con la barra espaciadora se incrementa direcciones de izquierda a derecha, se sale con ENTER. Recuerde el ordenamiento del pequeo indio, en debug las direcciones crecen de izquierda a derecha, es decir primero ingresa 25 y luego 43. Ingrese el dato 4325 hex con el comando E DS: 200 ENTER. Con el comando A ensamble en segmento de cdigo CS: 100, las 4 instrucciones siguientes: NOP MOV AX, 84A5 ADD AX, [200] NOP Con el comando T ejecute paso a paso las tres instrucciones.

Cul es el resultado de la suma que la instruccin ADD AX, [200] deja en su operando destino AX? AX= C7CA H Verifique manualmente la suma hexadecimal 4325 + 84A5 =

EJERCICIO 3: Sumar dos datos de 16 bits residentes en memoria de datos, dejar resultado en CPU (registro BX). Instale los datos en memoria, use el comando E. El primer dato en memoria es: DS: 150 CD DS: 151 AB El segundo dato en memoria es: DS: 200 32 DS: 201 15 En el segmento de cdigo CS: 100, con comando A ensamble una secuencia de instrucciones que sume los dos nmeros de 16 bits y deje el resultado en el registro BX. Con T ejecute sus instrucciones paso a paso y verifique el contenido final de BX.

Escriba el contenido final de BX = C0FF Escriba en el reporte la secuencia de instrucciones que resuelven el ejercicio. E DS:250 0C9E:0150 CD.CD E DS:200 0C9E:0200 32.32 A CS:100 NOP MOV BX,[150] ADD BX,[200] NOP

AB.AB 32.32

EJERCICIO 4: La funcin 2 de MSDOS. Con el comando A ensamble en CS: 100, las instrucciones siguientes: NOP MOV MOV INT MOV INT NOP

AH, 02 DL, 24 21 DL, 26 21

Verifique IP=100. Ejecute cada instruccin paso a paso con el comando P.

Qu pasa en pantalla cuando el procesador ejecuta por primera vez la instruccin INT 21?, luego qu pasa en pantalla cuando ejecuta INT 21 por segunda vez? Respuesta: Primero se imprime el smbolo $ que corresponde a 24H y luego se imprime el smbolo & que corresponde a 26H. Adems AL toma el valor de DL que a su vez representa el smbolo o carcter que se imprime al ejecutarse la instruccin INT 21. EJERCICIO 5: Ensamble en CS: 100 las instrucciones siguientes: NOP MOV MOV INT MOV INT INT NOP

AH, 2 DL, 2A 21 DL, 23 21 20

Ahora, para ejecutar el programa use el comando: G ENTER.

Qu se imprimi? Explique! Al tener AH=02 y al ejecutar INT 21 se imprime el smbolo del cdigo ASCII correspondiente al valor que se tenga en DL, que se encuentra en sistema hexadecimal. En el primer caso se imprime el smbolo correspondiente a 2AH que es *. Luego de las otras dos instrucciones, se imprime el smbolo correspondiente a 23H que es #. Al ejecutar INT 20 finaliza el programa; las funciones de NOP lo nico que hacen es ocupar memoria de programa. Todo esto sucede al ejecutar el programa. Al usar el cdigo G, no se ve paso a paso lo que sucede sino que se muestran simplemente los dos smbolos ( * y #) y el mensaje El programa ha terminado de forma normal que se debe a que se utiliz la instruccin INT20. EJERCICIO 6: La funcin 9 de MSDOS. Usando el comando A ensamble en CS: 200 el programa siguiente: NOP MOV MOV INT MOV INT

AH, 9 DX, 020C 21 AH, 0 21

DB 0D, 0A, FUNCION 9 DE SISTEMA MS-DOS,0D, 0A,$ Verifique que IP=200. Con comando P ejecute el programa paso a paso. Tome foto a la pantalla y explique.

Explicacin: Con AH= 9, al ejecutar INT 21 se puede imprimir cadenas de caracteres. Al ejecutar las primeras dos lneas se va a imprimir FUNCION 9 DE SISTEMA MS-DOS. Luego con las otras dos lneas (AH,0 e INT 21) se termina la ejecucin del programa. Con la directiva DB, se le indica al sistema que se ingresarn datos tipo byte. Adems los caracteres de control 0DH Y 0AH, que corresponden a CR y LF en cdigo ASCII respectivamente controlan la posicin del cursor. LF hace que el cursor baje a la siguiente lnea y CR hace que regrese al principio de la lnea. El smbolo $ es para indicar el fin de la cadena que debe imprimirse. Terminada la ejecucin paso a paso, recargue nuevamente IP con 200 y ejecute el programa con el comando G ENTER. Tome foto a la pantalla y explique.

Explicacin: Con el comando G se ejecuta todo el programa pero no se muestra en pantalla paso a paso lo que sucede. Por lo tanto solo se muestra FUNCION 9 DE SISTEMA MS-DOS y el mensaje El programa ha terminado de forma normal debido a la funcin 0.

Investigue: 1) Qu accin ejecuta la funcin 0 de MS-DOS? MOV AH, 0 ejecutada con INT 21 Explique. Al ejecutar INT 21 con AH=0 ( la funcin 0 ) lo que hace es finalizar el programa, es equivalente a ejecutar la instruccin INT 20. 2) En la Funcin 9 de MSDOS, Qu papel desempea el carcter especial $? Al ejecutar la funcin 9 con INT 21 lo que hace es imprimir cadenas; el caracter $ es el indicador de fin de cadena, en otras palabras se imprime lo que este en la direccin en DX hasta que se encuentre con este caracter. 3) La directiva DB. Esta directiva permite definir el tipo de dato que se ingresar. En este caso se le indica al sistema que tome los datos como bytes; es decir 8 bits. 4) Significado de los caracteres de control 0D y 0A. Estos caracteres permiten manejar el curso. 0DH equivale a CR en cdigo ASCII que significa carriage return. Esto hace que el cursor regrese al principio de lnea. 0AH equivale a LF en cdigo ASCII que significa line feed. Esto hace que el cursor salte a la siguiente lnea. EJERCICIO 7: Con el comando E ingrese al segmento de datos DS: 0200 los cdigos ASCII (valores hexadecimales) siguientes: 4D 49 43 52 4F 50 52 4F 43 45 53 41 44 4F 52 45 53 20 44 45 20 4D 55 4C 54 49 50 4C 45 53 20 4E 55 43 4C 45 4F 53 20 43 4F 4E 20 54 45 43 2E 20 48 54 54 24 Con comando A ensamble en CS: 100 las instrucciones siguientes: NOP MOV MOV INT INT NOP

AH, 9 DX, 0200 21 20

Asegurar que IP = 0100. Corra el programa con G ENTER. Qu IMPRIME, tome foto a la pantalla?

Lo que se imprime es: MICROPROCESADORES DE MULTIPLES NUCLEOS CON TEC. HIT Visualice cdigo de mquina en segmento de cdigo, use el comando siguiente U CS: 100 109 y escriba el cdigo de mquina de cada instruccin:

CODIGO DE MAQUINA 90 B409 BA0002 CD21 CD20 90

INSTRUCCION NOP MOV AH, 9 MOV DX, 0200 INT 21 INT 20 NOP

Visualice la memoria de datos con el comando D DS: 200 233. Explique.

EXPLICACION: El comando D permite visualizar en hexadecimal y en ASCII una seccin de memoria. En este caso escogimos que se muestre lo que se encontraba en el segmento de datos ( DS) desde la direccin 0200 a 0233. En esta direccin se guardaron los datos ingresados con el comando E por lo que se muestra la misma cadena que se imprimi al ejecutar el programa utilizando el comando G pero no en una sola lnea sino las letras equivalentes en cdigo ACSII a lo ingresado en sistema hexadecimal.

3. CONCLUSIONES
Despus de haber terminado de realizar la prctica acerca de este nuevo entorno de trabajo nos hemos familiarizado con el funcionamiento y manejo de los diferentes registros, memorias, funciones e instrucciones incluidas en el DEBUG. Tambin aprendimos como imprimir ya sea un solo caracter o una cadena de caracteres. Todo esto lo pudimos realizar con las diferentes funciones y comandos que nos ofrece el DEBUG en su entorno de MS-DOS.

Podemos concluir que con la ayuda de los comandos que ejecutamos en modo consola podemos modificar el contenido de los diferentes registros existentes en el procesador tales como AX BX CX o DX y los diferentes punteros como el IP el cual se tiene que tener en cuenta que este apuntando a la direccin correcta antes de empezar a ejecutar un programa ya sea paso a paso o de forma total con las diferentes formas de ejecutar un programas (comandos: T, P o G).

4. RECOMENDACIONES
Se recomienda estudiar y comprender los diferentes comandos que nos presenta DEBUG ya que nos facilitan el acceso a datos e instrucciones de la memoria del computador y de los registros del microprocesador. Adems se recomienda tener una tabla con el cdigo ASCII a la mano para poder saber que resultado puede esperarse, sobre todo cuando se trabaja con caracteres o datos tipo string. Se recomienda que antes de iniciar la ejecucin de algn programa ya sea paso a paso o de forma total tener en cuenta el valor del puntero IP ya que si este no se encuentra en la direccin correcta no se ejecutarn las instrucciones escritas anteriormente sino que se empezar a ejecutar otras instrucciones las cuales no queremos que se ejecuten puesto que se modificaran los registros con valores errneos o datos escritos por otros grupos anteriores.

You might also like