Está en la página 1de 9

Microprocesadores.

Guía 8 1

Facultad: Ingeniería.
Escuela: Electrónica.
Asignatura: Microprocesadores.
Lugar de ejecución: Microprocesadores (Edificio 3, 2da
planta).

DEBUG Y USO DE CADENAS.

Objetivos específicos

• Analizar paso a paso el funcionamiento de un código EXE, empleando el DEBUG.


• Aplicar las instrucciones básicas del manejo de cadenas.
• Aplicar la opción 0Ah de la INT 21h a los programas en lenguaje ensamblador.
• Aplicar los conocimientos adquiridos en el período anterior al utilizar una nueva herramienta.

Materiales y equipo

• 1 Computadora con utilidades MASM.exe y LINK.exe.


• Programas desarrollados en la guía 6.

Procedimiento
1) Abra una ventana de DOS y ubique los archivos con que trabajó en la práctica 6.

2) Si los archivos no se encuentran en la carpeta MASM50 trasládelos ahí.

3) En las prácticas en que se usaba el EMU8086, usted tenía la posibilidad de ejecutar paso a paso los
programas, así como monitorear los datos almacenados en los registros o la PILA. En esta práctica se
hará uso del comando DEBUG para hacer lo mismo para los programas creados en el Macro-
Ensamblador.

4) Para estudiar el primer programa de la práctica 6 escriba el comando DEBUG seguido del nombre de
su programa CON LA EXTENSIÓN .EXE ejemplo: C:\MASM50>DEBUG BB05555.EXE

5) Observará una imagen similar a la que se le presenta en la Figura 1.


2 Microprocesadores. Guía 8

Figura 1.

6) Para observar el segmento de código del programa que ha cargado en memoria escriba el siguiente
comando:

7) Ubique la dirección de inicio y de fin del segmento


Note que el último código hexadecimal es CD 21, que corresponde a la instrucción INT 21

8) Ejecute el programa con el comando “G”.

9) Observe que funcionó como en la práctica pasada y que se ha desplegado un mensaje

El programa ha terminado de forma normal

10) Salga del DEBUG con el comando Q.

11) Cargue el segundo programa de la práctica 6, tomado ejemplo del paso #4

12) Observe el segmento de código del programa como lo hizo en el paso número 6 de esta práctica.

13) Copie la información en la Tabla 1


Microprocesadores. Guía 8 3

DIRECCIONES LENGUAJE
DEBUG
SEGM(CS) OFFSET ENSAMBLADOR
0000 MOV DL, 41 mov dl, 41h
mov cx, 001Ah
LAZO: mov ah, 02
int 21h
inc dl
loop LAZO
mov ax, 4C00h
int 21h

Tabla 1

14) Compare el código fuente del ensamblador con lo que le muestra el comando del DEBUG.
¿Qué le ha pasado a la etiqueta “LAZO” a la que hace alusión la instrucción LOOP?

_______________________________________________________________________________________

_______________________________________________________________________________________

15) Observe el contenido de los registros usando el comando “R”

16) Interprete la información que le presenta. Copie la información.

_______________________________________________________________________________________

_______________________________________________________________________________________

_______________________________________________________________________________________

17) Note que en la última línea que observa se muestra la próxima instrucción que se ejecutará; en este
caso es la primera del programa.

18) Ejecute una vez el comando “T” que sirve para ejecutar paso a paso y vea que ocurre. Noteque al
usar el comando “T”, el DEBUG realiza la instrucción y actualiza el contenido de los registro. Analice
los cambios que ocurrieron.

¿Son congruentes los datos en los registros con lo que usted esperaba que ocurriera?

_______________________________________________________________________________________

_______________________________________________________________________________________

19) Continúe la ejecución paso a paso hasta antes de la instrucción INT 21. Ahora se llamará a
una interrupción. No use el comando “T”, porque con esto saltará al programa de atención de la
interrupción, para salir de él tendrá que ejecutar muchas veces el mando “T” (si es rápido digitando,
tardará unos 3 minutos para correr toda la interrupción), así que en lugar del comando “T” se utilizará
el comando “P”, que ejecutará todo el proceso de la interrupción y retornará al programa principal.
4 Microprocesadores. Guía 8

20) Analice los resultados y comparándolos con lo que usted esperaría que sucediera.

21) Como notará se imprimió en la pantalla la letra A, que corresponde al ASCII 41h.

22) Continúe el proceso usando adecuadamente los comandos T y P hasta ejecutar la instrucción LOOP.
Observe la ejecución del lazo.

23) Continúe el proceso hasta ver que se impriman dos caracteres más.
¿Cuándo dejará de repetirse el proceso?

_______________________________________________________________________________________

24) Corra totalmente el programa con el comando “G”


¿Cuántos caracteres se imprimieron? ______________________
¿Qué relación hay entre los caracteres impresos y el contenido de CX?

_______________________________________________________________________________________

25) Cargue el programa del análisis de resultados de la guía 6 en el DEBUG.

26) Use el comando “U” para ver el segmento de código.

27) Copie en la Tabla 2 la información que observa

DIRECCIONES LENGUAJE
DEBUG
SEGM(CS) OFFSET ENSAMBLADOR
0000 mov ax, @DATA
mov ds, ax
mov dx, offset texto
mov ah, 09
int 21h
mov ax, 4C00h
int 21h

Tabla 2

28) Compare los dos códigos. ¿Dónde presentan diferencias?


_______________________________________________________________________________________

29) Para observar el contenido de la memoria donde está almacenado el programa use el comando “D”.
Debe observa información similar a la que se presenta en la Tabla 3.
Microprocesadores. Guía 8 5

Tabla 3

30) Note que observa tres bloque de información: Las direcciones en formato segmento:desplazamiento,
Los datos en formato hexadecimal y los mismos datos en formato ASCII.

31) Identifique las direcciones donde comienzan y terminan los segmentos de código y datos, tanto en
formato segmento:desplazamiento como EN FORMATO absoluto.

SEGMENTO DIREC SEG:OFFSET DIRECCION ABSOLUTA


CODIGO INICIO
FIN
DATOS INICIO
FIN

32) Observe el contenido de los registros.

33) Ejecute las primera dos instrucciones.


¿Qué función cumplen estas instrucciones?

__________________________________________________________________________________________

__________________________________________________________________________________________

34) Ejecute las próximas dos instrucciones.


¿Qué función cumplen estas instrucciones?

__________________________________________________________________________________________

__________________________________________________________________________________________

35) Tomando en cuenta la información de primera y tercera instrucción.


¿A partir de qué dirección está ubicado el segmento de datos?

__________________________________________________________________________________________

__________________________________________________________________________________________
6 Microprocesadores. Guía 8

36) Ejecute la interrupción.


¿Cómo sabe el programa donde termina la cadena?

__________________________________________________________________________________________

37) Observe el siguiente código ASM, analizando su estructura.

38) Digite y convierta en archivo ejecutable el siguiente programa:

.model small ;---------PROCEDIMIENTO------------------------


.code prinstr PROC NEAR
mov ax, @data mov ah, 09
mov ds, ax int 21h
push ds ret
pop es prinstr ENDP
mov dx, offset text_1
call prinstr .data
mov dx, offset text_2 mayuscula DB 16,0,16 dup ('$')
call prinstr
mov ah, 0Ah minuscula DB 16,0,16 dup ('$')
mov dx, offset mayuscula
int 21h text_1 DB 13,10,'Bienvenidos al programa de
xor ch, ch cadenas',13,10,'$'
mov si, offset mayuscula + 1
mov cl, byte ptr [SI] text_2 DB 'Digite su primer nombre en
inc si MAYUSCULA',13,10,'(max 15 caracteres): $'
mov di, offset minuscula + 2
cld text_3 DB 13,10,'Usted digito: $'
ETIQ_1: lodsb
add al, 20h text_4 DB 13,10,'Cadena resultante: $'
stosb
loop ETIQ_1 .stack
push si end
pop di
mov al, 24h
stosb
mov dx, offset text_3
call prinstr
mov dx, offset mayuscula + 2
call prinstr
mov dx, offset text_4
call prinstr
mov dx, offset minuscula + 2
call prinstr
FIN:
mov ax, 4C00h
int 21h
Microprocesadores. Guía 8 7

39) Ejecute el programa siguiendo las instrucciones que se le proporcionaron hasta terminar.

40) Ejecute nuevamente el programa escribiendo los siguientes datos:


a. Su primer nombre y apellido en mayúsculas, separados por un espacio.
b. Su nombre completo en mayúscula. La idea es escribir un texto de más de 15 caracteres.
c. Su primer nombre en minúscula

Describa sus observaciones para cada caso

__________________________________________________________________________________________

__________________________________________________________________________________________

__________________________________________________________________________________________

Análisis de Resultados

a) Primer programa.

1. ¿Cuál es la dirección segmento:desplazamiento de la primera instrucción en el segmento de


código?, ¿cuál es la dirección absoluta?

b) Segundo programa.

1. ¿Qué relación hay entre las direcciones y la etiqueta LAZO?


2. Cuando ejecutó el programa paso a paso:
3. ¿Qué relación hay entre el contenido de IP y las instrucciones que se ejecutan?

c) Tercer programa.

1. ¿Cómo procesa los espacios en blanco?


2. ¿Cómo reacciona el programa si se intenta escribir una cadena mayor que la indicada en el texto?
3. Si se llenara completamente la cadena “mayúscula” ¿cuántos caracteres contendría?
8 Microprocesadores. Guía 8

Investigación Complementaria
1. Usando los mismos procedimientos de la práctica, estudie detenidamente el último programa,
analizando los procesos que se suceden al manipular las cadenas, como se toman del teclado y
como se logran las impresiones.

2. Investigue como se puede escribir un archivo tipo COM, directamente desde el DEBUG.

Bibliografía

• Rojas A. Ensamblador Básico, primera Edición Computec, México, 1993 Biblioteca UDB:
001.6404 R471 1993
Microprocesadores. Guía 8 9

Hoja de cotejo: 8

Guía 8: DEBUG Y USO DE CADENAS.

Alumno: Puesto No:

Docente: GL: Fecha:

EVALUACION

% 1-4 5-7 8-10 Nota

CONOCIMIENTO 35 Conocimiento deficiente de Conocimiento y Conocimiento


los siguientes fundamentos explicación completo y
teóricos: incompleta de los explicación clara de
fundamentos los fundamentos
-Función 0A de la int 21h
teóricos. teóricos.
-Comandos básicos del
DEBUG.
-Instrucciones básicas del
manejo de cadenas.
APLICACIÓN 60 Cumple sólo con uno o Cumple sólo con Cumple con los tres
DEL ninguno de los siguientes dos de los criterios.
CONOCIMIENTO criterios: criterios.
-Sabe interpretar la
información del DEBUG.
-Aplica las instrucciones
básicas del manejo de
cadenas.
-Aplica la opción 0Ah de la
INT 21h.
ACTITUD 5 -Es ordenado pero no hace -Hace uso -Hace un manejo
uso adecuado de los adecuado de los responsable y
recursos. recursos de adecuado de los
manera segura, recursos de acuerdo a
pero es pautas de seguridad e
desordenado. higiene.
TOTAL 100

También podría gustarte