tercera practica ac_2010

download tercera practica ac_2010

of 18

Transcript of tercera practica ac_2010

  • 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