UNIVERSIDAD ESTATAL PENÍNSULA DE SANTA ELENA
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
CARRERA DE ELECTRÓNICA Y TELECOMUNICACIONES
PRÁCTICA DE MICROPROCESADORES
DOCENTE: Msc. Elsy Villamar G.
CARRERA CICLO NOMBRE DE LA ASIGNATURA
Electrónica y 2020-I Microprocesadores
Telecomunicaciones
PRACTICAS Microprocesadores DURACION
NOMBRE DE LA PRACTICA Familiarizaciòn con el programa DEBUG 2h
PRACTICA 1
1 OBJETIVOS
Identificar y familiarizarse con DEBUG que forma parte del sistema operativo MS-DOS bajo
Windows.
Aprender a usarlo para examinar y alterar el contenido de: registros, localidades de
memoria, registro de estado, y ejecución paso a paso de instrucciones
Practicar para reforzar los conocimientos aprendidos.
2 FUNDAMENTO TEORICO
Debug es un comando en DOS , OS / 2 y Microsoft Windows (sólo en 32bit ) que ejecuta el
programa debug.exe (o DEBUG.COM en versiones anteriores de DOS). Debug puede actuar
como un ensamblador , desensamblador o programa de volcado hexadecimal que permite a los
usuarios examinar de forma interactiva el contenido de la memoria (en lenguaje
ensamblador , hexadecimal o ASCII ), realizar cambios y ejecutar de forma selectiva COM , EXEy
otros tipos de archivos. También tiene varios subcomandos que se utilizan para acceder
a sectores de disco específicos , puertos de E / S y direcciones de memoria.
Cuando se inicia Debug sin ningún parámetro en el indicador Debug, aparece un "-". El usuario
puede entonces introducir uno de varios subcomandos de una o dos letras, incluyendo "a" para
entrar en el modo ensamblador, "d" para realizar un volcado hexadecimal , "t" para rastrear y
"u" para desmontar un programa en memoria. Debug también se puede utilizar como
un intérprete de "script de depuración" utilizando la siguiente sintaxis.
Los comandos más útiles y más usados en DEBUG son:
UNIVERSIDAD ESTATAL PENÍNSULA DE SANTA ELENA
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
CARRERA DE ELECTRÓNICA Y TELECOMUNICACIONES
PRÁCTICA DE MICROPROCESADORES
DOCENTE: Msc. Elsy Villamar G.
A dirección Ensamblar (convierte lenguaje simbólico en código de máquina)
D dirección cantidad Mostrar en pantalla datos en la memoria
E dirección Editar memoria desde dirección
F direc1 direc2 valor Llenar memoria desde direc1 hasta direc2 con el dato valor
G dirección Ir (durante la ejecución) hasta la dirección dirección
H valor1 valor2 Muestra el resultado de la suma y resta hexadecimal entre valor1 valor2
M direc1 direc2 Mueve el bloque de memoria direc1- direc2 a partir de direc3
direc3
P cant Salta procedimientos, cant es # instrucciones que ejecuta
Q Sale de Debug
T cant Entra a procedimientos, cant es # instrucciones que ejecuta
U direc cant Desensambla cant bytes a partir de la dirección direc
? Presenta en pantalla el listado de todos los comandos
Microprocesador
- Las instrucciones y los datos están en memorias, separadas con bus separado ( Arq. Harvard ).
- Multiplicadores de alta velocidad implementados en hardware.
- Varias instrucciones se ejecutan simultáneamente. (Pipelining).
- Lazos de programas implementados en hardware.
- Varios puertos seriales de entrada/salida para comunicación con otros procesadores.
UNIVERSIDAD ESTATAL PENÍNSULA DE SANTA ELENA
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
CARRERA DE ELECTRÓNICA Y TELECOMUNICACIONES
PRÁCTICA DE MICROPROCESADORES
DOCENTE: Msc. Elsy Villamar G.
Figura 2.1 La forma de programado del computador.
El formato general de T es
T=dirección inicial número de instrucciones <enter>.
Si no se especifica la dirección inicial no es necesario el signo =, por defecto la dirección inicial está
dada por CS: IP. Si no se especifica ninguno de los parámetros, T ejecuta la instrucción apuntada por
CS: IP, es decir T ENTER ejecuta la instrucción actual apuntada por CS: IP.
Para invocar el programa DEBUG abrir la ventana del MSDOS, en directorio raíz entrar lo siguiente:
UNIVERSIDAD ESTATAL PENÍNSULA DE SANTA ELENA
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
CARRERA DE ELECTRÓNICA Y TELECOMUNICACIONES
PRÁCTICA DE MICROPROCESADORES
DOCENTE: Msc. Elsy Villamar G.
C:\> debug <enter>
DEBUG responde con el indicador guión “-“. El indicador guión indica nivel de comandos del programa
debug. El ? visualiza en pantalla todos los comandos del debug.
Visualizar todos los comandos:
-? <enter
Observe que los comandos se invocan con letras simples y algunos requieren argumentos adicionales.
1. Registros:
Para examinar el contenido de los registros internos del procesador ingrese:
-R<enter>
Este comando R visualiza en pantalla los registros del procesador, así como también las banderas de
estado en la parte inferior derecha.
Para examinar y cambiar el contenido de un registro, el comando R usa el nombre de un registro
como argumento.
UNIVERSIDAD ESTATAL PENÍNSULA DE SANTA ELENA
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
CARRERA DE ELECTRÓNICA Y TELECOMUNICACIONES
PRÁCTICA DE MICROPROCESADORES
DOCENTE: Msc. Elsy Villamar G.
Ejemplo, ingrese lo siguiente:
-R AX <enter>
AX 0000
: FFFF <enter>
Examine nuevamente el registro con el comando R. Usted verá que el registro AX ahora contiene
FFFF.
Examine nuevamente el registro con el comando R. Usted verá que el registro AX ahora contiene
FFFF.
Recuerde, estos procesadores usan dos registros especiales CS: IP para apuntar instrucciones. CS
contiene el segmento de código e IP un desplazamiento. Si es necesario use el comando R para cargar
IP con el desplazamiento deseado.
3 PROCEDIMIENTO
3.1 EQUIPO
EQUIPO NECESARIO MATERIAL DE APOYO
Computadora. Practica digital
Software DosBox Pizarron
Marcadores
Proyector
3.2 DESARROLLO DE LA PRACTICA
Es importante que cada uno de los miembros del grupo entienda cada paso de la práctica puesto que
en las lecciones se plantearán temas basados en estas experiencias.
EJEMPLO:
Asuma que DS=1512H. Encontrar la dirección física y su contenido de la localidad de memoria
después de ejecutar:
MOV AL,99H
MOV [3518],AL
UNIVERSIDAD ESTATAL PENÍNSULA DE SANTA ELENA
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
CARRERA DE ELECTRÓNICA Y TELECOMUNICACIONES
PRÁCTICA DE MICROPROCESADORES
DOCENTE: Msc. Elsy Villamar G.
Respuesta:
-A CS:100
- MOV AL,99
- MOV [3518], AL
-P
-P
-D DS: 3518
EJERCICIO 1:
Instrucción de suma ADD:
Ahora, vamos a instruir al procesador para que ejecute la suma de dos cantidades colocando
instrucciones de máquina en el segmento de código.
La operación deseada es AX ← AX + BX. Con el comando A ensamble las 5 instrucciones siguientes en
CS: 100.
NOP
MOV AX, 026E
MOV BX, 0439
ADD AX, BX
NOP
Observe que el registro AX se inicializa con 026E y BX con 0439. 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 instrucción NOP.
¿Cuál es el resultado de la suma que la instrucción ADD deja en el operando destino AX?
UNIVERSIDAD ESTATAL PENÍNSULA DE SANTA ELENA
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
CARRERA DE ELECTRÓNICA Y TELECOMUNICACIONES
PRÁCTICA DE MICROPROCESADORES
DOCENTE: Msc. Elsy Villamar G.
EJERCICIO 2:
Suma de un dato residente en CPU con un dato residente en memoria.
Ahora, sumemos el dato 1234 hex residente en la localidad de memoria DS:200, con un dato en el
registro AX. Para ingresar 1234 hex al segmento de datos use el comando E, éste comando espera el
ingreso de un byte, con la barra espaciadorase incrementa direcciones de izquierda a derecha, se sale
con ENTER. Recuerde el ordenamiento del pequeño indio, en debug las direcciones crecen de
izquierda a derecha, es decir primero ingresa 34 y luego 12.
Ingrese el dato1234 hex con el comandoE DS: 200ENTER.
Con el comando A ensamble en segmento de código CS: 100, las 4 instrucciones siguientes:
NOP
MOV AX, 5678
ADD AX, [200]
NOP
Con el comando T ejecute paso a paso las tres instrucciones. ¿Cuál es el resultado de la suma que la
instrucción ADD AX, [200] deja en su operando destino AX?
EJERCICIO 3:
Suma de dos datos residentes en memoria, dejar resultado en CPU (registro BX).
Sumar dos cantidades de 16 bits residentes en el segmento de datos DS y dejar el resultado en el
registro BX.
El primer dato es:
DS: 150 1A
DS: 151 2B
El segundo dato es:
DS: 200 3C
DS: 201 78
El segmento de código es CS: 100. Escriba una secuencia de instrucciones que sume los dos números
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 = A356
Escriba en el reporte la secuencia de instrucciones que resuelven el ejercicio.
1. Usando Funciones del MS-DOS:
La instrucción INT n (n=tipo de interrupción) permite el acceso a programas especiales que están
presentes en memoria y que se cargan durante el arranque de la máquina. Por ahora, podríamos
pensar en INT n como un “llamado de función”.
UNIVERSIDAD ESTATAL PENÍNSULA DE SANTA ELENA
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
CARRERA DE ELECTRÓNICA Y TELECOMUNICACIONES
PRÁCTICA DE MICROPROCESADORES
DOCENTE: Msc. Elsy Villamar G.
EJERCICIO 4:
La función 2 (INT)
Con el comando A ensamble en CS: 100, las instrucciones siguientes:
NOP
MOV AH,02
MOV DL,24
INT 21
MOV DL,26
INT 21
NOP
Verifique IP=100. Ejecute cada instrucción paso a paso con el comando P. ¿Qué pasa en pantalla
cuando el procesador ejecuta por primera vez la instrucción INT 21?, luego ¿qué pasa cuando ejecuta
INT 21 por segunda vez?
2. Mecanismo de salida:
Cuando un programa en lenguaje ensamblador termina su ejecución, debe permitirse el regreso al
sistema operativo. Una forma de lograr esto es con la función INT 20. En los programas de nivel alto,
tal como C, el compilador automáticamente inserta INT 20 al final del programa. Aquí, en nivel bajo,
depende del programador si incluye o no el comando INT 20, con debug es mandatorio incluir INT 20
al final de los programas.
EJERCICIO 5:
Ensamble en CS: 100 las instrucciones siguientes:
NOP
MOV AH, 2
MOV DL, 2A
INT 21
MOV DL, 23
INT 21
INT 20
NOP
Ahora, para ejecutar el programa use el comando: G ENTER.
¿Qué se imprimió? Explique!
El programa imprime en pantalla los simbolos “$” y ”&” ya que existe ah=02 y la funcion int 21 en el
codigo q exhibe los simbolos en pantalla. Los datos 24 y 26 en dl son los valores hexadecimales de
dichos simbolos. Finalizando el programa se codifica la funcion int 20 , este da un mensaje al final que
indica que el programa ha terminado.
“OJO” ¡NO use el comando G sin la instrucción INT 20 al final del programa!
Observe que el comando G ejecuta las instrucciones a velocidad de máquina desde la localidad inicial
CS: 100 hasta encontrar INT 20, esta instrucción ejecuta el regreso automático al nivel de comandos
UNIVERSIDAD ESTATAL PENÍNSULA DE SANTA ELENA
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
CARRERA DE ELECTRÓNICA Y TELECOMUNICACIONES
PRÁCTICA DE MICROPROCESADORES
DOCENTE: Msc. Elsy Villamar G.
del programa.
EJERCICIO 6: La función 9.
Usando el comando A ensamble en CS: 100 el programa siguiente:
NOP
MOV AH, 9
MOV DX, 010C
INT 21
MOV AH, 0
INT 21
DB 0D, 0A, “FUNCION 9 DE SISTEMA MS-DOS”,0D, 0A,”$”
Verifique que IP=100. Ejecute el programa paso a paso con el comando P.
Tome foto a la pantalla y explique.
Terminada la ejecución paso a paso, recargue nuevamente IP con 100 y ejecute el programa
con el comando G ENTER. Tome foto a la pantalla y explique.
EJERCICIO 7:
Con el comando E ingrese al segment
o de datos DS:0200 los valores hexadecimales siguientes:
0D-0A-4F-4B-21-0D-0A-21
56-69-73-75-61-6C-69-7A-61-20
4D-65-6E-73-61-6A-65-20
67-72-61-62-61-64-6F-20
65-6E-20-6D-65-6D-6F-72-69-61-20-0D-0A-4F-4B-21-24
Ensamble en CS: 100 las instrucciones siguientes:
NOP
MOV AH, 9
MOV DX, 0200
INT 21
INT 20
NOP
Asegurar que IP = 0100. Corra el programa con G ENTER.
¿Qué IMPRIME, tome foto a la pantalla?
Visualice código de máquina en segmento de código, use el comando siguiente
U CS: 100 109.
UNIVERSIDAD ESTATAL PENÍNSULA DE SANTA ELENA
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
CARRERA DE ELECTRÓNICA Y TELECOMUNICACIONES
PRÁCTICA DE MICROPROCESADORES
DOCENTE: Msc. Elsy Villamar G.
5 Conclusiones y Bibliografia
6.1 Conclusiones
1) Investigue la diferencia entre T y P. Escriba su respuesta en reporte.
Investigue:
1. ¿Qué acción ejecuta la función 0 de MS-DOS?
MOV AH, 0
INT 21 Explique.
2. En la Función 9 de MSDOS, ¿Qué papel desempeña “$”?
3. La directiva DB.
4. Significado de los caracteres de control 0D y 0A.
2) Conteste las preguntas que tiene cada ejercicio.
3) Conclusiones de lo visto y aprendido en esta practica.
6.2 Bibliografia
THE INTEL MICROPROCESSORS, Architecture, Programming and Interfacing. Barry B.
Brey. Prentice Hall.
IBM PC ASSEMBLY LANGUAGE AND PROGRAMMING. Peter Abel. Prentice Hall.
www.unitec.edu.ve/materiasenlinea/upload/T368-1-1.ppt