tercera practica ac_2010
TRANSCRIPT
-
8/3/2019 tercera practica ac_2010
1/18
UNIVERSIDAD NACIONAL DE SAN AGUSTIN
FACULTAD DE INGENIERIA DE PRODUCCIN YSERVICIOS
DEPARTAMENTO ACADEMICO DE INGENIERIA DESISTEMAS E INFORMTICA
ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS
Curso:
Arquitectura de Computadoras
Trabajo sobre:
PRESENTADO POR:< Velasco Aasco Hossmell >
-
8/3/2019 tercera practica ac_2010
2/18
U.N.S.A F.I.P.SESCUELA PROFESIONAL DE INGENIERA DE SISTEMASCURSO: ARQUITECTURA DE COMPUTADORAS
TERCERA PRCTICA DE LABORATORIO
EL REGISTRO DE ESTADO
I. OBJETIVOS
Analizar la ejecucin de instrucciones lgicas observando como stas afectan al registro deestados.
II. MARCO TERICO
El REGISTRO DE ESTADO (F) de 16 bits, aunque algunos de ellos no se utilizan. Cada uno delos bits se denomina indicador o flag, que generalmente, se modifican por las operacioneslgicas y aritmticas.
CF Carry Flag: indica que hubo "arrastre" PF Parity Flag: paridad impar del resultado, se usa para detectar errores en
transmisiones. ZF Zero Flag: si resultado de la operacin es cero. AF Auxiliary carry: indica "arrastre" del nibble (cuatro bits) menos significativo al
nibble ms significativo. Para BCD.
SF Sign Flag: bit ms significativo de resultado. representa el signo: 0 si es positivo, 1 sies negativo.
TF Trap Flag: Si vale 1, el procesador est en modo paso a paso. En este modo, la CPUautomticamente genera una interrupcin interna despus de cada instruccin,permitiendo inspeccionar los resultados del programa a medida que se ejecuta instruccinpor instruccin. .
IF Interrupt Flag: Si vale 1, la CPU reconoce pedidos de interrupcin externasenmascarables (por el pin INTR). Si vale 0, no se reconocen tales interrupciones. Lasinterrupciones no enmascarables y las internas siempre se reconocen independientementedel valor de IF.
DF Direction Flag: Si vale 1, las instrucciones con cadenas sufrirn "auto-decremento",esto es, se procesarn las cadenas desde las direcciones ms altas de memoria hacia las
-
8/3/2019 tercera practica ac_2010
3/18
ms bajas. Si vale 0, habr "auto-incremento", lo que quiere decir que las cadenas seprocesarn de "izquierda a derecha".
OF Overflow flag: Si vale 1, hubo un desborde en una operacin aritmtica con signo,esto es, un dgito significativo se perdi debido a que tamao del resultado es mayor queel tamao del destino.
III. ACTIVIDADES
1. Escriba, compile y ejecute el programa paso a paso, observando el registro de estado luegode cada operacin AND, anote los datos con los que se operan, el resultado y las banderasque se activan
.model small
.stack
.data
dato1 db 9Ah ; Dato 8 bits
dato2 dw 2CC2h ; Dato 16 bitsmascara1 db 0F0h ; Mscara 8 bits
mascara2 dw 0F0Fh ; Mscara 16 bits
.code
mov ax,@data
mov ds,ax
mov dl, dato1 ;primera parte
mov ah, mascara1
and dl, ah
mov cx, dato2 ; segunda parte
mov bx, mascara2
and cx, bx
and cx, cx
mov ax, 4c00h ;fin del programa
int 21h
End
Los datos con los que opera son:
1)instruccion and dl, ah
operando 01 AX=F020
operando 02 dl=009A
Resultado DX=0090
-
8/3/2019 tercera practica ac_2010
4/18
2)and cx, bx
operando 01:2CC2
operando 02:F0F
resultado :C02
-
8/3/2019 tercera practica ac_2010
5/18
3)and cx, cx
operacion1:C02operacion2:C02resultado:C02
2. Modifique las lneas con la instruccin AND sustituyndola por la instruccin OR, repitael paso 1.
instruccin: or dl, ahoperando1.2F9Aoperando2:2FF0resultado:2FFA
-
8/3/2019 tercera practica ac_2010
6/18
instruccin:or cx, bx
operando1:2CC2operando2:F0Fresultado:2FCF
instruccin: or cx, cxoperando1:2FCFoperando2:2FCFresultado:2FCF
-
8/3/2019 tercera practica ac_2010
7/18
3. Sustituya ahora por la instruccin XOR y repita el paso 1.
instruccin xor dl, ahoperando1:2F9Aoperando2:2FF0resultado:2FFA
instruccin xor cx, bxoperando1:2CC2operando2:F0Fresultado:2FCF
-
8/3/2019 tercera practica ac_2010
8/18
instruccin xor cx, cxoperando1:2FCF
operando2:2FCFresultado:2FCF
4. Digite el segundo programa, ejecute paso a paso el primer bloque, anote los datos con losque se operan, el resultado y las banderas que se activan
.model small
.stack
.data
-
8/3/2019 tercera practica ac_2010
9/18
.code
mov ax,@data
mov ds,ax
mov dl, 1Ah ;primer bloque
mov ax, 2CC2h
xor dl, ah
xor dl, 0FFh
mov dl, 1Ah ;segundo bloquemov ax, 2CC2h
xor dl, ah
not dl
mov ax, 4c00h ;fin del programa
int 21h
End
respuesta:a)primer bloque
instruccin XOR dl,ahoperando1:231Aoperando2:232Cresultado:36
instruccin XOR DL,0FFhoperando1:2336operando2:23FFresultado:00C9
-
8/3/2019 tercera practica ac_2010
10/18
b)segundo bloque
instruccinXOR DL,AHoperando1:231A
operando2:232Cresultado:36
instruccin NOT DL
operando1:232Coperando2:23FFresultado:00C9
-
8/3/2019 tercera practica ac_2010
11/18
5. Ejecute paso a paso el segundo bloque, anote los datos con los que se operan, el resultadoy las banderas que se activan
segundo bloqueinstruccinXOR DL,AH
operando1:231A
operando2:232Cresultado:36
-
8/3/2019 tercera practica ac_2010
12/18
instruccin NOT DLoperando1:232Coperando2:23FFresultado:00C9
6. Algunas banderas se pueden activar o desactivar mediante instrucciones especficas, sintomar en cuenta el resultado de alguna operacin. Como un ejemplo inserte la siguientemodificacin en el segundo programa. Ejecute paso a paso el programa monitoreandosimultneamente el estado de las banderas, note como se activan o desactivan.
mov dl, 1Ah
mov ax, 2CC2h
-
8/3/2019 tercera practica ac_2010
13/18
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 Ccld ;Desactiva la bandera D
sti ;Activa la bandera I
xor dl, ah
desarrollo:
instruccion XOR DL,AHoperando1:231Aoperando2:232Cresultado:36
instruccion NOT DLoperando1:232Coperando2:23FFresultado:00C9
-
8/3/2019 tercera practica ac_2010
14/18
7) Digite el tercer programa: Ejecute solo las primeras dos instrucciones, monitoreando las
banderas Cules se activaron?, cul fue el resultado de la operacin? cmo interpreta elresultado?
mov ax,@data
AX=0720 BX=0000 CX=0117 DX=0000 SP=0100 BP=0000 SI=0000 DI=0000
DS=0700 ES=0700 SS=0710 CS=0720 IP=0003 NV UP EI PL NZ NA PO NC
0720:0003 8ED8 MOV DS, AX
mov ds,ax
-
8/3/2019 tercera practica ac_2010
15/18
resultado es :AX=0720 BX=0000 CX=0117 DX=0000 SP=0100 BP=0000 SI=0000DI=0000DS=0720 ES=0700 SS=0710 CS=0720 IP=0005 NV UP EI PL NZ NA PO NC0720:0005 B4B9 MOV AH, 0B9h
8) Ejecute hasta la instruccin TEST y conteste otra vez las preguntas del punto 7.
.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
-
8/3/2019 tercera practica ac_2010
16/18
test ah, 40h
mov ax, 4c00h ;fin del programa
int 21h
End
testinstruccin TEST AH,40h
operando1:23B9operando2:2340resultado:0
IV. CUESTIONARIOprimer programa
1. Qu objetivos tiene usar la mascara1 (F0h) con las tres diferentes instrucciones lgicas?
El objetivo de la F0h es la de enmascarar (quitar) los cuatro bits mas altos (nibble alto).
2. Cuando se ejecuta la primera instruccin AND el bit D7 termina en estado alto y seactiva la bandera S, en la segunda instruccin AND tambin termina en alto, pero estavez no se activa la bandera por qu?
-
8/3/2019 tercera practica ac_2010
17/18
.
su bits mas significativo en la primera instruccin es 1,y en la segunda tambien sigue siendo
1,como es igual no se activa la bandera.
3. Cuando se ejecuta la tercera instruccin lgica, ya sea AND u OR, las banderasreaccionan de forma similar. Pero cuando se ejecuta con la instruccin XOR no por qu
ocurre eso?cuando ejecutamos la instruccin XOR ah cambia el flag PF,esto se debe a que se obtienen com
o resultados a un cero, en cambio en la AND y OR NO los resultado es uno entonces no cambia.
4. En el programa se declaran datos para hacer las operaciones dnde se guardan estosdatos?los datos se almacenan en los registros de la memoria.
5. En el 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 sonidnticos, pero el estado de las banderas no lo es por qu?
Por que antes de operar el segundo bloque se realizan intercambio de datos como el MOV y cambia el
estado de los flags ZF,PF.
tercer programa
6. Cul es la diferencia fundamental que not al comparar las instrucciones AND y TEST?
La instruccin TEST realiza la operacin lgica and(Y) a nivel de bit entre los dos operandos perono afecta a ningn operando,y guarda los resultados pero afecta nicamente a los flags,
mientras que la funcion AND si almacena el resultado en un destino.
V. CONCLUSIONES
Consigne al menos cinco conclusiones a las que ha arribado en el desarrollo de la prctica
Muestre un segmento de programa en assembler que ilustre el uso de las banderas del
procesador
vi de cmo cambian los valores de los flags en cada instruccin dependiendo de la instruccin.
vi como se ejecutaban algunas instrucciones lgicas y el cambio de sus flags.
vi como cambian los registros de banderas, dependiendo del tipo de operacin y los datos que
operan.
.
-
8/3/2019 tercera practica ac_2010
18/18