Está en la página 1de 18

UNIVERSIDAD NACIONAL DE SAN AGUSTIN FACULTAD DE INGENIERIA DE PRODUCCIN Y SERVICIOS DEPARTAMENTO ACADEMICO DE INGENIERIA DE SISTEMAS E INFORMTICA

ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS Curso:

Arquitectura de Computadoras Trabajo sobre:

<registro de estado>

PRESENTADO POR: < Velasco Aasco Hossmell >

U.N.S.A F.I.P.S ESCUELA PROFESIONAL DE INGENIERA DE SISTEMAS CURSO: 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 de estados.

II. MARCO TERICO El REGISTRO DE ESTADO (F) de 16 bits, aunque algunos de ellos no se utilizan. Cada uno de los bits se denomina indicador o flag, que generalmente, se modifican por las operaciones lgicas 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 si es negativo. TF Trap Flag: Si vale 1, el procesador est en modo paso a paso. En este modo, la CPU automticamente genera una interrupcin interna despus de cada instruccin, permitiendo inspeccionar los resultados del programa a medida que se ejecuta instruccin por instruccin. . IF Interrupt Flag: Si vale 1, la CPU reconoce pedidos de interrupcin externas enmascarables (por el pin INTR). Si vale 0, no se reconocen tales interrupciones. Las interrupciones no enmascarables y las internas siempre se reconocen independientemente del 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

ms bajas. Si vale 0, habr "auto-incremento", lo que quiere decir que las cadenas se procesarn 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 que el tamao del destino.

III. 1.

ACTIVIDADES Escriba, compile y ejecute el programa paso a paso, observando el registro de estado luego de cada operacin AND, anote los datos con los que se operan, el resultado y las banderas que se activan .model small .stack .data dato1 db 9Ah ; Dato 8 bits dato2 dw 2CC2h ; Dato 16 bits mascara1 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

2)and cx, bx operando 01:2CC2 operando 02:F0F resultado :C02

3)and cx, cx operacion1:C02 operacion2:C02 resultado:C02

2. Modifique las lneas con la instruccin AND sustituyndola por la instruccin OR, repita el paso 1. instruccin: or dl, ah operando1.2F9A operando2:2FF0 resultado:2FFA

instruccin:or cx, bx operando1:2CC2 operando2:F0F resultado:2FCF

instruccin: or cx, cx operando1:2FCF operando2:2FCF resultado:2FCF

3. Sustituya ahora por la instruccin XOR y repita el paso 1. instruccin xor dl, ah operando1:2F9A operando2:2FF0 resultado:2FFA

instruccin xor cx, bx operando1:2CC2 operando2:F0F resultado:2FCF

instruccin xor cx, cx operando1:2FCF operando2:2FCF resultado:2FCF

4. Digite el segundo programa, ejecute paso a paso el primer bloque, anote los datos con los que se operan, el resultado y las banderas que se activan

.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 not dl mov ax, 4c00h int 21h End

;primer bloque

;segundo bloque

;fin del programa

respuesta:
a)primer bloque instruccin XOR dl,ah operando1:231A operando2:232C resultado:36

instruccin XOR DL,0FFh operando1:2336 operando2:23FF resultado:00C9

b)segundo bloque instruccin XOR DL,AH operando1:231A operando2:232C resultado:36

instruccin NOT DL operando1:232C operando2:23FF resultado:00C9

5. Ejecute paso a paso el segundo bloque, anote los datos con los que se operan, el resultado y las banderas que se activan

segundo bloque instruccin XOR DL,AH operando1:231A operando2:232C resultado:36

instruccin NOT DL operando1:232C operando2:23FF resultado:00C9

6. Algunas banderas se pueden activar o desactivar mediante instrucciones especficas, sin tomar en cuenta el resultado de alguna operacin. Como un ejemplo inserte la siguiente modificacin en el segundo programa. Ejecute paso a paso el programa monitoreando simultneamente el estado de las banderas, note como se activan o desactivan. mov dl, 1Ah mov ax, 2CC2h

xor dl, ah xor dl, 0FFh stc std cli mov dl, 1Ah mov ax, 2CC2h clc cld sti xor dl, ah

;Activa la bandera C ;Activa la bandera D ;Desactiva la bandera I

;Desactiva la bandera C ;Desactiva la bandera D ;Activa la bandera I

desarrollo:
instruccion XOR DL,AH operando1:231A operando2:232C resultado:36

instruccion NOT DL operando1:232C operando2:23FF resultado:00C9

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 el resultado?

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

resultado es :AX=0720 BX=0000 CX=0117 DX=0000 SP=0100 BP=0000 SI=0000 DI=0000 DS=0720 ES=0700 SS=0710 CS=0720 IP=0005 NV UP EI PL NZ NA PO NC 0720: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 and ah, 40h or ah, 01 mov ah, 0B9h

;En binario 1011_1001 ;Mascara 0100_0000 ;Si Z=1 implica que D6=0 ;borra las banderas activas

test ah, 40h mov ax, 4c00h int 21h End test instruccin TEST AH,40h operando1:23B9 operando2:2340 resultado:0

;fin del programa

IV. CUESTIONARIO primer 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 se activa la bandera S, en la segunda instruccin AND tambin termina en alto, pero esta vez no se activa la bandera por qu?

. 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 banderas reaccionan 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 estos datos?
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 son idnticos, 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 pero no 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. .

También podría gustarte