guia2MCP PILET

Anuncio
GUÍA II
TEMA: Instrucciones Lógicas y Registro de
Banderas
Lugar de ejecución: Laboratorio Electrónica
Digital.
Tiempo de ejecución: 4 hrs.
Departamento:
Año:
Electrónica
Tercero
Ciclo:
II/2010
Asignatura:
Microprocesadores
I. Objetivos
•
•
•
•
Analizar la forma en que se ejecutan algunas instrucciones lógicas observando como
Éstas afectan al registro de estados.
Examinar detenidamente la manera en que se ejecutan algunas instrucciones lógicas.
Analizar la manera en que se modifica el registro de banderas, dependiendo del tipo
de operación y los datos que operen.
Identificar las características propias de las máscaras que se utilizan junto con las
instrucciones lógicas.
II. Introducción Teórica
Registro de banderas (flags):
Cada bandera es un bit y se usa para registrar la información de estado y de control de las
Operaciones del microprocesador. Hay nueve banderas (los 7 bits restantes no se utilizan):
Banderas de estado: Registran el estado del procesador, normalmente asociado a una
comparación o a una instrucción aritmética.
• CF: Bandera de acareo.
• OF: Bandera de desbordamiento (aritmético).
• ZF: Bandera de resultado 0 o comparación igual.
• SF: Bandera de resultado o comparación negativa.
• PF: Bandera de paridad (número par de bits).
• AF: Bandera auxiliar. Indica si hay necesidad de ajuste en las operaciones aritméticas con
números BCD.
Banderas de control:
• DF: Bandera de dirección. Controla la dirección de las operaciones con cadenas de caracteres
incrementando o decrementando automáticamente los registros índices (SI y DI)
• IF: Bandera de interrupciones. Indica si están permitidas o no las interrupciones de los
dispositivos externos.
• TF: Bandera de atrape. Controla la operación de modo paso a paso (usada por el programa
DEBUG).
III. Materiales y Equipo
CANTIDAD
DESCRIPCION
• Computadora PC con el programa
EMU8086
• Guía de laboratorio Nº 1
1
OBSERVACIONES.
IV. Procedimiento
1) Ejecute el programa emulador de microprocesadores EMU8086, haciendo
doble clic en el icono del escritorio.
2) Cree un nuevo documento tipo COM.
3) Digite el PRIMER PROGRAMA, recuerde que el encabezado es necesario para
crear un archivo COM.
En esta guía de laboratorio se declararán datos de diferentes maneras, no
los pierda de vista.
PRIMER PROGRAMA
NOTA: en este programa se están usando la instrucción con registros de 8 y
16 bits, así como las directivas DB y DW.
4) Compile y ejecute el programa paso a paso, monitoreando el registro de
estados (FLAGS) luego de cada operación AND. Anote los datos con los que
se
opera,
los
resultados
y
las
banderas
que
se
activan.
______________________________________________________________
______________________________________________________________
______________________________________________________________
2
5) Modifique las líneas que contienen la instrucción AND, sustituyéndola por la
instrucción OR. Repita desde el paso 4.
______________________________________________________________
______________________________________________________________
6) Sustituya ahora por la instrucción XOR y repita el paso 4.
______________________________________________________________
______________________________________________________________
7) Digite el SEGUNDO PROGRAMA, que está dividido en dos partes.
8) Ejecute paso a paso el primer bloque. Anote los datos con los que se realizan
las operaciones y los resultados de las mismas, los registros que intervienen
en el proceso y el estado de las banderas en cada paso del proceso.
______________________________________________________________
______________________________________________________________
9) Ejecute ahora el segundo bloque y anote los datos con los que se opera, los
resultados y las banderas que se activan durante el proceso.
______________________________________________________________
______________________________________________________________
3
10)
Modifique la tercera y séptima instrucción del programa escribiendo
xor ah, dl
11)
Repita los pasos 8 y 9 ¿qué diferencias nota?
______________________________________________________________
______________________________________________________________
12)
Como se ha visto en los programas anteriores, algunas de las banderas
se activan del resultado de una instrucción. Pero también algunas banderas
se pueden activar o desactivar mediante instrucciones específicas, sin tomar
en cuenta el resultado de alguna operación. Como un ejemplo inserte la
siguiente modificación en el SEGUNDO PROGRAMA:
13) Ejecute paso a paso el programa monitoreando simultáneamente el estado de las
banderas, note como se activan o desactivan. ¿Cuáles son sus conclusiones?
____________________________________________________________________
________________________________________________________
14) Digite el TERCER PROGRAMA:
15) Ejecute solo las primeras dos instrucciones, monitoreando las banderas ¿Cuáles se
activaron?, ¿cuál fue el resultado de la operación? ¿cómo interpreta el resultado?
____________________________________________________________________
________________________________________________________
4
16) Ejecute hasta la instrucción TEST y conteste otra vez las preguntas del punto 15 del
procedimiento.
____________________________________________________________________
________________________________________________________
17) En las instrucciones 2ª y 5ª cambie los dos datos 40h por 08h y repita los pasos del
14 al 16, ¿cómo se modificó el resultado del programa? Anote su respuesta.
____________________________________________________________________
________________________________________________________
V. Análisis de Resultados.
a) Primer programa.
¿Qué objetivos se buscan al usar la mascara1 (F0h) con las tres diferentes instrucciones
lógicas? Cuando se ejecuta la primera instrucción AND el bit D7 termina en estado alto y
se activa la bandera S, en la segunda instrucción AND también termina en alto, pero esta
vez no se activa la bandera ¿por qué?
Cuando se ejecuta la tercera instrucción lógica, ya sea AND u OR, las banderas
reaccionan de forma similar. Pero cuando se ejecuta con la instrucción XOR no ¿por qué
ocurre eso?
En el programa se declaran datos para hacer las operaciones ¿dónde se guardan estos
datos?
b) Segundo programa.
Cuando se ejecutan el primer bloque del programa el resultado se almacena en DL, lo
mismo curre con el segundo bloque; los dos resultados son idénticos, pero el estado de
las banderas no lo es ¿por qué?
Al modificar el programa, tanto los resultados como las banderas terminaron en
5
distintos estados ¿cuáles fueron los cambios específicos que observo?
c) Tercer programa.
¿Cuál es la diferencia fundamental que noto a comparar las instrucciones AND y TEST?
¿Qué relación existe entre los bit que deseamos probar y el valor específico de la
máscara seleccionada?
VI. Investigación Complementaria
•
•
En el programa se declaran algunos datos que serán operados ¿dónde se almacenan
estos datos?
Investigue que son las directivas DB y DW
VII. Bibliografía
•
Brey, B. B. Los Microprocesadores Intel. 8086 / 8088, 80186, 80286, 80386 y 80486.
Arquitectura, programación e interfaces, Prentice Hall, México DF, 19953 Biblioteca
UDB 001.6404 B847 1997
6
Descargar