Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Guia2 ac
1. 2Guía
1
Instrucciones Lógicas y Registro de
Banderas
Alumnos:
-Soncco chuctaya Fredy
Escuela: Arquitectura de
Computadoras
Tema: Microprocesadores
Objetivo General
Analizar la forma en que se ejecutan algunas instrucciones lógicas observando como
éstas afectan al registro de estados.
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 equipos
Guía de laboratorio
Computadora PC con el programa EMU8086
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.
2. 2Guía
2
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
mov dl, dato1 ;
mov ah, mascara1
and dl, ah
mov cx, dato2 ;
mov bx, mascara2
and cx, bx
and cx, bx ret
3. 2Guía
3
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.
_
4. 2Guía
4
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
xor dl, ah
xor dl, 0FFh xor dl, ah not dl
10) Modifique la tercera y séptima instrucción del programa escribiendo
xor ah, dl
5. 2Guía
5
11) Repita los pasos 8 y 9 ¿qué diferencias nota?
La diferencia se ven en SF en la tercera línea de código es 0, mientras que en SF para la
séptima línea de código se ve un 1.
Xor 1° pf=1
Xor 2° sf=1
Xor 3° sf=0
AX = 32 C2
6. 2Guía
6
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:
mov dl, 1Ah
mov ax, 02CC2h
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, 2CC2
clc ;Desactiva la bandera C
cld ;Desactiva la bandera D
sti ;Activa la bandera I
xor dl, ah
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?
Xor 1° pf=1
Stc sf=1
Std cf=1
Cli df=1
Mov 3° if=0
Clc cf=0
Cld df=0
Sti if=1
Xor 3° sf=0
La conclusión es que puedo usar los dos Flag
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?
Pf y zf en dos veces cambiado de 0 a 1 y de 1 a 0 y 0 a 1
7. 2Guía
7
TERCER PROGRAMA
INICIO
AH = 0B9h
#make_COM#
org 100h
INICIO:
mov ah, 0B9h;En binario 1011_1001
AH = AH AND 40h
AL = AL OR 01
AH = 0B9h
AH = AH TEST 40h
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
FIN
END
ret
16)Ejecute hasta la instrucción TEST y conteste otra vez las preguntas del
punto 15 del procedimiento.
Pf y zf en dos veces cambiado de 0 a 1 y de 1 a 0
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.
Solo cambia PF de 0 a 1 y de 1 a 0
8. 2Guía
8
Análisis de resultados
Tarea Complementaria:
mov al,dato
mov dl,mascara1
or al,dl
mov cl,mascara2
and al,cl
mov bl,mascara3
xor al,bl
ret
dato db 06Dh ;0110 1101
mascara1 db 081h ;1000 0001 Colocar en 1 los bits D1 y D7
mascara2 db 0ABh ;1010 1011 Borrando los bits desde el D6 hasta el D2
mascara3 db 02Ah ;0010 1010 Invierte el estado de los bit Impares desde el D5 hasta el D1