INSTRUCCIONES LÓGICAS Y EL REGISTRO DE BANDERAS.

Anuncio
Microprocesadores. Guía 3
1
Facultad: Ingeniería.
Escuela: Electrónica.
Asignatura: Microprocesadores.
Lugar de ejecución: Microprocesadores (Edificio 3, 2da
planta).
INSTRUCCIONES LÓGICAS Y EL REGISTRO DE BANDERAS.
Objetivos específicos
•
•
•
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.
Materiales y equipo
•
1 Computadora con el programa EMU8086.
Procedimiento
1) Abra el EMU 8086 y digite el PRIMER PROGRAMA
PRIMER PROGRAMA
.model small
.stack
.data
dato1
db
9Ah ; Dato 8 bits
dato2
dw
2CC2h ; Dato 16 bits
mascara1
db
0F0h ; Máscara 8 bits
mascara2
dw
0FF0h ; Máscara 16 bits
.code
mov ax,@data
mov ds,ax
dl, dato1 ;primera parte
mov ah, mascara1
and dl, ah
mov cx, dato2 ; segunda parte
mov bx, mascara2
2
Microprocesadores. Guía 3
and cx, bx
and cx, cx
mov ax, 4c00h ;fin del programa
int 21h
END
2) Compile y ejecute el programa paso a paso, monitoreando el registro de banderas (FLAGS) luego de
cada operación AND. Anote los datos con los que se opera, los resultados y las banderas que se
activan.
____________________________________________________________________________________
____________________________________________________________________________________
3) Modifique las líneas que contienen la instrucción AND, sustituyéndola por la instrucción OR. Repita
desde el paso 2.
____________________________________________________________________________________
____________________________________________________________________________________
4) Sustituya ahora por la instrucción XOR y repita el paso 2.
____________________________________________________________________________________
____________________________________________________________________________________
5) Digite el SEGUNDO PROGRAMA, que está dividido en dos partes.
6) 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.
____________________________________________________________________________________
____________________________________________________________________________________
Microprocesadores. Guía 3
3
SEGUNDO PROGRAMA
.model small
.stack
.data
.code
mov ax,@data
mov ds,ax
mov dl, 1Ah
mov ax, 2CC2h
xor dl, ah
xor dl, 0FFh
mov dl, 1Ah
mov ax, 2CC2h
xor dl, ah
;primer bloque
;segundo bloque
not dl
mov ax, 4c00h ;fin del programa
int 21h
End
7) 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.
____________________________________________________________________________________
____________________________________________________________________________________
8)
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.
4
Microprocesadores. Guía 3
mov dl, 1Ah
mov ax, 2CC2h
xor dl, ah
xor dl, 0FFh
stc
;Activa la bandera C
std
;Activa la bandera D
cli
;Desactiva la bandera I
mov dl, 1Ah
mov ax, 2CC2h
clc
;Desactiva la bandera C
cld
;Desactiva la bandera D
sti
;Activa la bandera I
xor dl, ah
9)
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?
____________________________________________________________________________________
____________________________________________________________________________________
____________________________________________________________________________________
10) Digite el TERCER PROGRAMA.
11) Ejecute solo las primeras cuatro instrucciones, monitoreando las banderas ¿Cuáles se activaron?, ¿cuál
fue el resultado de la operación? ¿cómo interpreta el resultado?
____________________________________________________________________________________
____________________________________________________________________________________
12) Ejecute hasta la instrucción TEST y conteste otra vez las preguntas del punto 11 del procedimiento.
____________________________________________________________________________________
____________________________________________________________________________________
Microprocesadores. Guía 3
5
TERCER PROGRAMA
.model small
.stack
.data
.code
mov ax,@data
mov ds,ax
mov ah, 0B9h ;En binario 1011_1001
and ah, 40h
;Mascara 0100_0000
;Si Z=1 implica que D6=0
or ah, 01
;borra las banderas activas
mov ah, 0B9h
test ah, 40h
mov ax, 4c00h ;fin del programa
int 21h
End
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 7 del resultado 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 ocurre 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 distintos estados ¿cuáles
fueron los cambios específicos que observo?
6
Microprocesadores. Guía 3
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?
Investigación Complementaria
•
En el programa se declaran algunos datos que serán operados ¿dónde se almacenan estos
datos?
•
Escriba un programa que dado un dato almacenado en AX invierta el estado de los bits
impares desde el D5 hasta el D1, borre los bits pares desde el D6 hasta el D2 y coloque
en 1 los bits D7 y D0
Bibliografía
•
Brey, B. B. Los Microprocesadores Intel. 8086 / 8088, 80186, 80286, 80386 y 80486.
Arquitectura, programación e interfaces, tercera edición Prentice Hall, MéxicoDF,1997 Biblioteca
UDB 001.6404 B847 1997.
•
Puede consultar el material en línea del EMU8086 sobre los temas de esta actividad. Se
recomiendan: “Arithmetic and logic instructions ”:
http://www.emu8086.com/assembly_language_tutorial_assembler_reference/asm_tutorial_06.html
7
Microprocesadores. Guía 3
Hoja de cotejo:
3
Guía 3: INSTRUCCIONES LÓGICAS Y EL REGISTRO DE BANDERAS.
Puesto No:
Alumno:
GL:
Docente:
Fecha:
EVALUACION
%
CONOCIMIENTO
35
1-4
Conocimiento deficiente de
los siguientes fundamentos
teóricos:
-Función de las instrucciones
AND, OR y XOR.
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.
-Condiciones que activan las
banderas (C,S,Z,D e I).
APLICACIÓN
DEL
CONOCIMIENTO
60
Cumple sólo con uno de los
siguientes criterios:
-Predice los resultados de las
operaciones lógicas AND,
OR y XOR.
-Predice la activación o no
de las banderas.
-Identifica la función de las
instrucciones especiales para
modificar banderas.
5
ACTITUD
TOTAL
100
-Es ordenado pero no hace
uso adecuado de los
recursos.
Nota
Descargar