Sie sind auf Seite 1von 29

Guía

2 1

Facultad: Estudios Tecnologicos.


Instrucciones Lógicas y Registro de Escuela: Electrónica
Banderas  Asignatura:
 Asignatura: Microprocesadores
Microprocesadores

Objetivo General

Analizar la forma en que se ejecutan algunas instrucciones lógicas observando como


éstas afectan al registro de estados.

Objetivos específcos

• 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.
• dentificar las caracter!sticas
caracter!sticas propias de las m"scaras
m"scaras que se utilizan junto con
las instrucciones lógicas.

Materiales y equipos

• #u!a de laboratorio
• $omputadora %$ con el programa E&'()(*

Procedimiento

1+ Ejecute el programa emulador de de microprocesadores


microprocesadores E&'()(*, aciendo
aciendo doble
clic en el icono del escritorio.

-+ $ree
$ree un nuevo
nuevo docu
documen
mento
to tipo
tipo $&

/+ 0igite el %&E %#A&A,


%#A&A, recuerde que el encabezado es necesario
necesario para
para
crear un arcivo $&.

En esta guía de laboratorio se declararán datos de diferentes maneras, no los


pierda de vista.
PRIMER PROGRAMA
O!A" en este programa se están usando la instrucci#n con registros de $ %
&' bits, así como las directivas () % (*.
#make_COM#
INICIO org 100h
2$3
L ! dato"
 A# !
mov dl, dato1 4primera
$ascara" parte mov a, masca1

L !L %
and dl, a
 A#

mov cx, dato- 4 segunda parte


& !
mov bx, masca-
dato' B& !
$ascara'
and cx, bx

C& !C& % and cx,


B&
cx ret
dato1 db 5A
C& !C& %
C&
dato- d6 )-$$-
mascara db )7)
1 d6 )7)7
FIN mascara
+ -ompile % eecute el programa paso a paso, monitoreando
monitoreando el registro
de estados /01AG2 luego de cada operaci#n A(. Anote los datos con
los 3ue se opera, los resultados % las banderas 3ue se activan.

observamos el comportamiento
comportamiento de los flags como el flag 7 tiene una valor lógico de 1

podemos observar en los flags que posterior al primer A20 en los flags se activan con 1 logico los
siguientes flags3 87, %7, 7
podemos analizar el siguiente A20 y el comportamiento de los flags mantiene el mismo que el estado
anterior

En
el

siguiente A20 observamos un cambio en los flags activando los siguientes3 7


7inalmente tenemos el comando E9
E9 posterior al :ltimo
:ltimo And donde el flag no
var!a a la instrucción anterior

4 Modifi3ue
Modifi3u e las líneas 3ue contienen la instrucci#n
instrucci# n A(,
A(, sustitu%5ndola
por la instrucci#n OR. Repita desde el paso +.

eemplazo de las instrucciones A20 por instrucciones 


Analizando el primer  observamos que la activación del :nico flag es 7

En
la

instrucción siguiente al primer  observamos la activación de los siguientes flags3 87, %7,
7.
7.

En el segundo  podemos observar como los flags se mantienen como en el estado


posterior al primer 
%ara la ejecución del segundo  observamos unos cambios en la activación de los
siguientes flags, activ"ndose los siguientes3 %7, 7

En
la

instrucción posterior al ultimo  no observamos cambio alguno en los flags

' 2ustitu%
2ust itu%a
a a6ora por la instrucc
inst rucci#n
i#n 7OR % repita
repi ta el paso +.
8ustituyendo las instrucciones  por instrucciones ;

Analizando el primer ; solo se activa el flag 7


En
la

instrucción posterior al primer ; observamos un cambio en la activación de los flags los cuales
pasan a estar activos los siguientes3 %7, 7
En
el

segundo ; observamos que los flags no presentan cambios respecto a las instrucciones anteriores
En
el

ultimo ; observamos como varia la activación de los flags a pasar a solamente activarse el flag 7

En
la

instrucción posterior al ultimo ; observamos un cambio de activación en los flags los cuales
estar"n activos :nicamente los siguientes3 <7, %7, 7
8 (igite el 2EG9(O PROGRAMA, 3ue está dividido en dos partes.

$ Eecute
Eecute paso a paso el primer
primer blo3ue. Anote los datos con los 3ue se
reali:an las operaciones
operaciones % los resultados de las mismas, los registros
3ue intervienen en el proceso % el estado de las banderas en cada paso
del  proceso.
%rimera instrucción del primer bloque con solamente el flag 7 activado

8egunda instrucción del primer bloque manteniendo los mismos flags activados

Activacion del primer ; del primer bloque

'ltima instrucción del primer bloque donde también podemos observar la variación de los flags
activados en esta instrucción

; Eecute a6ora el segundo blo3ue % anote los datos con los 3ue se opera,
los resultados % las banderas 3ue se activan durante el proceso.
proceso .
%rimera instrucción del segundo bloque activando los flag 87, %7, 7

8egunda instrucción del bloque manteniendo los mismos flags activos


%rimer ; de la segunda parte del programa

Ejecución de la instrucción 29 y cambio de activación de los flags %7, 7

'ltima instrucción ejecutada en el segundo bloque del programa, manteniendo los mismos flags que
la instrucción ejecutada anteriormente

&< Modifi3ue
Modifi3 ue la tercera % s5ptima instrucci#n
instrucci #n del programa escribiendo
escribie ndo

=or a6, dl
%rograma con el cambio de la instrucción indicada

&& Repita
Rep ita los pasos
paso s $ % ; >3u5 diferen
dif erencias
cias notas?
notas ?

• %rimer bloque
%rimera instrucción del primer bloque solo activando el flag 7

8egunda instrucción del primer bloque manteniendo los mismos flags activos que la instrucción
anteriormente ejecutada
%rimero ; ejecutado del primer bloque manteniendo los mismos flags activos

'ltima instrucción ejecutada en el primer bloque, a su vez activa otros flags como son %7,
%7, 7

2egundo )lo3ue
%rimera instrucción del segundo bloque activando los siguientes flags3 87, %7, 7

8egunda instrucción manteniendo los mismos flags activos


Ejecución de la instrucción ; sin presentar cambios en el flag

nstrucción 29 la cual izo presentar un cambio en los flags desactivando el flag 87

-omo podemos observar la diferencia básica es 3ue el cambio de flags se 6ace mediante
instrucciones predeterminadas
predeterminadas en cada blo3ue anali:ado del programa

&@ -omo se 6a visto en los programas


program as anteriores, algunas
alg unas de las banderas
se activ
activan
an del result
resultad
adoo de una
una ins
instru
trucc
cci#n
i#n.. Pero
Pero tambi
tambi5n
5n alguna
algunass
band
bander
eras
as se pued
pueden
en acti
activa
varr o desa
desactctiv
ivar
ar medi
medianante
te inst
instru
rucc
ccio
ione
ness
especí
específic
ficas,
as, sin tomar
tomar en cuenta
cuenta el result
resultad
ado o de alguna
alguna operac
operaci#n
i#n..
-omo
-omo un eempl
eemplo
o ins
insert
erte
e la siguie
siguiente
nte modifi
modificaccaci#n
i#n en el 2E2EG9
G9(O
(O
PROGRAMA"
mov dl, 1Ah
mov ax,
02CC2h xor dl,
ah
 xor dl, 0FFh
 stc ;Activa la bandera
bandera C 
 std ;Activa la bandera
bandera D
cli ;Desactiva la bandera I  
mov dl, 1Ah
mov ax,
2CC2
clc ;Desactiva la bandera C  
cld ;Desactiva la bandera D

1/+Ejecute paso a paso el programa monitoreando simult"neamente


simult"neamente el estado de
las banderas, note como se activan o desactivan.
desactivan.
=$u"les son sus conclusiones>

primera instrucción ejecutada


segunda instrucción ejecutada sin presentar ning:n cambio en los flags

tercera instrucción ejecutada sin cambio en los flags

$ambio de flag con la presente ejecución de la instrucción


Activación del flag 87 con la instrucción

Activación del flag $7 como se indico en la descripción de la instrucción

Activación del flag 07 como indica la descripción de la instrucción ejecutada

0esactivación
0esactivación del flag 7 con la instrucción $?
0esactivación
0esactivación del flag $7 con la instrucción $?$

0esactivación
0esactivación del flag 07 con la instrucción $?0

Activación del flag 7 con la instrucción 89


1@+0igite
1@+ 0igite el 9E$E %#A&A3

1+Ejecute solo las primeras dos instrucciones, monitoreando las banderas =$u"les
se activ
activar
aron>
on>,, =cu"l
=cu"l fue el result
resultado
ado de la opera
operació
ción>
n> =cómo
=cómo interp
interpret
reta
a el
resultado>
!ER-ER PROGRAMA
BmaCeD$&B
INICIO
org 1))
2$
 A# ! (B)* 3
mov a, )54En binario

 A# ! A#
A# AN
AN
+(* 1)11D1
1)11D1))1
))1 and
and a,
a, @) 4&asca
4&ascara
ra

 AL ! AL OR
OR (" )1))D))))
48i <F1 implica que

 A# ! (B)* 0*F) or a, )1 4borra las

banderas activas
 A# ! A#
A# TE,T
+(*

mov a, )5

1*+Ejecute asta la instrucción 9E89 y conteste otra vez las preguntas del punto 1
del procedimiento.
1G+En las instrucciones -H y H cambie los dos datos @) por )( y repita los pasos
del 1@ al 1*, =cómo se modificó el resultado del programa> Anote su respuesta.

En la presente instrucción vemos solamente un flag activo el cual es 7


0e manera similar mantenemos en los mismos estados los flags

?a instrucción  nos permitio la activación del flag %7

&antenemos el estado de los flags por la instrucción ejecutada

Activación del flag <7 mediante 9E89

Análisis de resultados

a+ %rim
%rimer
er pro
progr
gram
ama.a.
=Iué
=Iué obje
objeti
tivo
voss se busc
buscan
an al usar
usar la masc
mascar
ara
a1 J7)
J7)++ con
con las
las tres
tres dife
diferrente
entes
s
instrucciones lógicas>
$uando se ejecuta la primera instrucción A20 el bit 0G termina en estado alto y se
activa la bandera 8, en la segunda instrucción A20 también termina en alto, pero esta
vez no se activa la bandera =por qué>

$uando
$uando se ejecut
ejecuta
a la tercer
tercera
a instru
instrucci
cción
ón lógica
lógica,, ya sea A20 u , las bander
banderas
as
reaccionan de forma similar. %ero cuando se ejecuta con la instrucción ; no =por
qué ocurre eso>
En el programa se declaran datos para acer las operaciones =dónde se guardan estos
datos>

b+ 8egu
8egund
ndo
o progr
program
ama.
a.
$uando se ejecutan el primer bloque del programa el resultado se almacena en 0?, lo
mismo curre con el segundo bloque4 los dos resultados son idénticos, pero el estado de
las banderas no lo es =por qué>
Al modifi
modificar
car el progr
program
ama,
a, tanto
tanto los result
resultado
ados
s como
como las bander
banderas
as termin
terminaro
aron
n en
distintos estados =cu"les fueron los cambios espec!ficos que observo>

c+ 9ercer
rcer pro
progr
gram
ama.a.
=$u"l es la diferencia fundamental que noto a comparar las instrucciones A20 y 9E89>
=Iué relación existe entre los bit que deseamos probar y el valor espec!fico de la
mascara seleccionada>

 Tarea
 Tarea complemen
complementaria
taria

En el programa se declaran algunos datos que ser"n operados =dónde se almacenan


estos datos>
nvestigue que son las directivas 0 y 0K
Escriba un programa que dado un dato almacenado en A; invierta el estado de los bits
impares desde el 0 asta el 01, borre los bits pares desde el 0* asta el 0- y
coloque en 1 los bits 0G y 0)

Bibliograía

rey, . . Los Microprocesadores Intel. 8086 / 8088, 80186, 80286, 8086 ! 80"86.
/
 Ar#$itect$ra, pro%ramaci&n
pro%ramaci&n e inter'aces,
inter'aces, %rentice Lall, &éxico 07, 155
iblioteca '0 ((".-+(+ B+/ "))/

%uede consultar
consultar el material
material en l!nea del E&'()(*
E&'()(* sobre los temas de esta actividad.
actividad.
8e recomiendan3

• (Arit6metic and logic instructions ),


,ttp3MM666.emu()(*.co
,ttp3MM666.emu()(*.comMassemblyDlanguag
mMassemblyDlanguageDtutorialDassemblerD
eDtutorialDassemblerDreferenceMa
referenceMa
smDtutorialD)*.tml

Das könnte Ihnen auch gefallen