DEBUG Y USO DE CADENAS.

Anuncio
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 MacroEnsamblador.
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
DIRECCIONES
SEGM(CS)
OFFSET
0000
DEBUG
MOV DL, 41
3
LENGUAJE
ENSAMBLADOR
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
SEGM(CS)
OFFSET
0000
DEBUG
LENGUAJE
ENSAMBLADOR
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
INICIO
CODIGO
FIN
INICIO
DATOS
FIN
DIREC SEG:OFFSET
DIRECCION ABSOLUTA
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
.code
mov ax, @data
mov ds, ax
push ds
pop es
lea dx, text_1
call prinstr
lea dx, text_2
call prinstr
mov ah, 0Ah
lea dx, mayuscula
int 21h
xor ch, ch
lea si, mayuscula
inc si
inc si
mov cl,mayuscula[1]
lea di, minuscula
inc di
inc di
cld
ETIQ_1: lodsb
add al, 20h
stosb
loop ETIQ_1
push si
pop di
mov al, 24h
stosb
lea dx, text_3
call prinstr
lea dx, mayuscula
inc dx
inc dx
call prinstr
lea dx, text_4
call prinstr
lea dx, minuscula
inc dx
inc dx
call prinstr
FIN:
mov ax, 4C00h
int 21h
;---------PROCEDIMIENTO-----------------------prinstr PROC NEAR
mov ah, 09
int 21h
ret
prinstr ENDP
.data
mayuscula DB 16,0,16 dup ('$')
minuscula DB 16,0,16 dup ('$')
text_1 DB 13,10,'Bienvenidos al programa de
cadenas',13,10,'$'
text_2 DB 'Digite su primer nombre
MAYUSCULA',13,10,'(max 15 caracteres): $'
text_3 DB 13,10,'Usted digito: $'
text_4 DB 13,10,'Cadena resultante: $'
.stack
end
39) Ejecute el programa siguiendo las instrucciones que se le proporcionaron hasta terminar.
40) Ejecute nuevamente el programa escribiendo los siguientes datos:
en
Microprocesadores. Guía 8
7
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 ¿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?
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
8
Microprocesadores. Guía 8
Hoja de cotejo:
8
Guía 8: DEBUG Y USO DE CADENAS.
Puesto No:
Alumno:
GL:
Docente:
Fecha:
EVALUACION
%
CONOCIMIENTO
35
1-4
Conocimiento deficiente de
los siguientes fundamentos
teóricos:
-Función 0A de la int 21h
-Comandos básicos del
DEBUG.
5-7
8-10
Conocimiento y
explicación
incompleta de los
fundamentos
teóricos.
Conocimiento
completo y
explicación clara de
los fundamentos
teóricos.
Cumple sólo con
dos de los
criterios.
Cumple con los tres
criterios.
-Hace uso
adecuado de los
recursos de
manera segura,
pero es
desordenado.
-Hace un manejo
responsable y
adecuado de los
recursos de acuerdo a
pautas de seguridad e
higiene.
-Instrucciones básicas del
manejo de cadenas.
APLICACIÓN
DEL
CONOCIMIENTO
60
Cumple sólo con uno o
ninguno de los siguientes
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.
5
ACTITUD
TOTAL
100
-Es ordenado pero no hace
uso adecuado de los
recursos.
Nota
Documentos relacionados
Descargar