Está en la página 1de 6

UNIVERSIDAD NACIONAL DE INGENIERIA DPTO DE SISTEMAS DIGITALES Y TELECOMUNICACIONES 1 LABORATORIOS DE MAQUINAS COMPUTADORAS I TERCER LABORATORIO

INSTRUCCIONES LGICAS YEL REGISTRO DE BAN DERAS.


Objetivos especficos
Examinar detenidamente la manera en que se ejecutan algunas instrucciones lgicas Analizar la manera en que se modifica el registro de banderas, dependiendo del tipo de operacin y los datos que operen. Identificar las caractersticas propias de las mscaras que se utilizan junto con las instrucciones lgicas.

Materiales y equipo
1 Computadora con el programa EMU8086.

Procedimiento
1) Abra el EMU 8086 y digite el PRIMER PROGRAMA PRIMER PROGRA MA

.model small .stack .data dato1 db 9Ah ; Dato 8 bits dato2 dw 2CC2h ; Dato 16 bits mascara1 db 0F0h ; Mscara 8 bits mascara2 dw 0FF0h ; 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 2) Compile y ejecute el programa paso a paso, monitoreando el registro de banderas (FLAGS) luego de cada operacin AND. Anote los datos con los que se opera, los resultados y las banderas que se activan.

Al cargar el programa tenemos la bandera IF activa, y como resultado de la operacin and dl, ah los datos en mascara 1 son transferido de ah a dl y suma los datos en dl y ah manteniendo el valor final en ah. Las banderas flags que se activan son: PF y SF. Despues de la operacion ``and cx, bx la bandera SF se hace 0. Banderas que se activan: IF, SF, PF

3) Digite el SEGUNDO PROGRAMA, que est dividido en dos partes. 4) 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.

En la operacin xor dl, ah se realiza con el dato hexadecimal 1Ah que se mueve a dl y el dato hexadecimal 2cc2h que se mueve los registros AH y AL . Las banderas que se activan son la bandera de paridad PF y la bandera IF. El resultado es 36 en el registro DL.
SEGUNDO PROGRAMA

.model small .stack .data .code mov ax,@data mov ds,ax ;------primer bloque-----mov dl, 1Ah mov ax, 2CC2h xor dl, ah xor dl, 0FFh ;-----Fin del primer bloque---;-----inicio segundo bloque---mov dl, 1Ah mov ax, 2CC2h xor dl, ah not dl ;-----Fin del segundo bloque--mov ax, 4c00h ;fin del programa int 21h End

DPTO DE SISTEMAS DIGITALES Y TELECOMUNICACIONES LABORATORIOS DE MAQUINAS COMPUTADORAS I


3

5) 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.

En la operacin xor dl, oFFh se concreta hasta pasar al segundo bloque con el resultado C9 en el registro DL. En la operacion mov dl, 1Ah en el segundo bloque mueve 1Ah al registro dl independientemente del valor que se encuentre all en ese momento. Este bloque es igual al primer bloque con excepcin de que no tiene la operacin XOR dl, 0FFh. Las banderas que se activan son IF, PF, SF

6)

Como se ha visto en los programas anteriores, algunas de las banderas se activan del resultado de una instruccin. Pero tambin 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. mov dl, 1Ah mov ax, 2CC2h 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 bande ra Ccld ;Desactiva la bande ra Dsti ;Activa la bandera I xor dl, ah

7)

Ejecute paso a paso el programa monitoreando simultneamente el estado de las banderas, note como se activan o desactivan.

8) Digite el TERCER PROGRAMA. 9) Ejecute solo las primeras cuatro instrucciones, monitoreando las banderas Cules se activaron?, cul fue el resultado de la operacin? cmo interpreta el resultado?

Las banderas que se activan son : IF, ZF, PF. El resultado de la operacin and ah, 40h en el registro ah es 00. La bandera ZF toma el valor de 1 cuando el valor es cero y la bandera IF esta activa cuando esta interrumpido el proceso. La bandera PF demuestra la paridad que hay en el resultado.
10) Ejecute hasta la instruccin TEST y conteste otra vez las preguntas del paso 9 del procedimiento.

DPTO DE SISTEMAS DIGITALES Y TELECOMUNICACIONES LABORATORIOS DE MAQUINAS COMPUTADORAS I


4
TERCER PROGRA MA .model small .stack .data .code mov ax,@data mov ds,ax mov ah, 0B9h ;En binario 1011_1001

and ah, 40h or ah, 01

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

mov ah, 0B9h

test ah, 40h mov ax, 4c00h ;fin del programa int 21h End

Anlisis de Resultados
a) Primer programa. 1. Qu objetivos se buscan al usar la mascara1 (F0h) con las tres diferentes instrucciones lgicas? Para ver la funcin de instrucciones lgicas y los datos que se guardan enn la memoria, adems de eso ver las banderas que se activan al realizar las operaciones. 2. Cuando se ejecuta la primera instruccin AND el bit 7 del resultado 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? La bandera SF no se activa porque esta en 0 lo que significa que el signo del resultado es positivo. 3. Modifique las lneas que contienen la instruccin AND, sustituyndola por la instruccin OR y Anote los datos con los que se opera, los resultados y las banderas que se activan. En la primera operacin or dl, ah se activan las banderas SF (el signo es negativo) y la bandera PF (hay paridad) y el resultado es FA en el registro DL. En la segunda operacin or cx, cx las banderas que se desactivan son: SF, PF. 4. Modifique las lneas que contienen la instruccin AND, sustituyndola por la instruccin XOR y Anote los datos con los que se opera, los resultados y las banderas que se activan. En la primera operacin xor dl, ah se activan la bandera PF y el resultado es 6A en DH. En la segunda operacin xor cx, cx la bandera que se activa es ZF (que significa que los dos registros son iguales). El resultado es 00 en CX. 5. En el programa se declaran datos para hacer las operaciones dnde se guardan estos datos? Cdigos de datos. Las banderas pueden activarse y desactivarse mediante instrucciones especificas que introducimos en el programa para el propsito que dispongamos sea necesario en el que las banderas se activen o desactiven. b) Segundo programa. 1. Cuando se ejecutan el primer bloque del programa el resultado se almacena en DL, lo mismo ocurre con el segundo bloque; los dos resultados son idnticos, pero el estado de las banderas no lo es por qu? La bandera que no es igual en el primer bloque y en el segundo bloque es la bandera SF, en el segundo el resultado del registro DL es positivo por eso en el primer bloque se activa esta bandera debido a que el resultado en el registro DL es negativa (SF=1) y en el segundo bloque es positivo (SF=0). 2. Al modificar el programa, tanto los resultados como las banderas terminaron en distintos estados cules fueron los cambios especficos que observo?

Al activar y desactivar las banderas mediante instrucciones que ingresemos en el programa para diferentes propsitos que nosotros consideremos que es necesario usar ciertas banderas.

c) Tercer programa. 1. Cul es la diferencia fundamental que noto a comparar las instrucciones AND y TEST? Con la instruccin AND se realiza la conjucion de los operandos bits por bits mientras que la instruccin TEST

realiza una conjuncin, bit por bit, de los operandos, pero a diferencia de AND esta instruccin no coloca el resultado en el operando destino, solo tiene efecto sobre el estado de las banderas compara lgicamente los operandos.
2. Qu relacin existe entre los bit que deseamos probar y el valor especfico de la mscara seleccionada? Que es necesario conocer la mascara con la que utiliza en los operandos para conocer el bit que se va a discriminar.

Investigacin Complementaria
En el programa se declaran algunos datos que sern operados dnde se almacenan estos datos? En la memoria seleccionada por el programa ya sea los registros AX, BX, CX, DX, CH, DH, BH Escriba un programa que dado un dato almacenado en AL invierta el estado de los bits impares desde el D5 hasta el D1, borre los bits pares desde el D6 hasta el D2 y coloque en 1 los bits D7 y D0

Bibliografa
Brey, B. B. Los Microprocesadores Intel. 8086 / 8088, 80186, 80286, 80386 y 80486. Arquitectura, programacin e interfaces, tercera edicin Prentice Hall, MxicoDF,1997 Biblioteca UDB 001.6404 B847 1997. Puede consultar el material en lnea del EMU8086 sobre los temas de esta actividad. Se recomiendan: A r i t h m e t i c a n d l o g i c i n s t r u c t i o n s : http://www.emu8086.com/assembly_language_tutorial_assembler_reference/asm_tutorial_06.html