guia2

9
GUIA 2 1) Ejecute el programa emulador de microprocesadores EMU8086, haciendo doble clic en el icono del escritorio. 2) Cree un nuevo documento tipo COM 3) Digite el PRIMER PROGRAMA, recuerde que el encabezado es necesario para crear un archivo COM. 4) Compile y ejecute el programa paso a paso, monitoreando el registro de estados (FLAGS) luego de cada operación AND. Anote los datos con los que se opera, los resultados y las banderas que se activan. Primer AND dl 00 9A 1 0 0 1 1 0 1 0 ah F0 00 1 1 1 1 0 0 0 0 Resultado 90 1 0 0 1 0 0 0 0 Se activaron las banderas SF y PF. Segundo AND cx 2C C2 0 0 1 0 1 0 1 0 1 0 1 0 0 0 1 0 bx 0F 0F 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 Resultad o 0C02 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 Se desactivaron las banderas SF y PF.

Upload: tacomedinaoscar

Post on 08-Nov-2015

322 views

Category:

Documents


2 download

DESCRIPTION

guia2 MICROPROCESADORES

TRANSCRIPT

GUIA 2 1) Ejecute el programa emulador de microprocesadores EMU8086, haciendo doble clic en el icono del escritorio.

2) Cree un nuevo documento tipo COM

3) Digite el PRIMER PROGRAMA, recuerde que el encabezado es necesario para crear un archivo COM.

4) Compile y ejecute el programa paso a paso, monitoreando el registro de estados (FLAGS) luego de cada operacin AND. Anote los datos con los que se opera, los resultados y las banderas que se activan. Primer ANDdl009A10011010

ahF00011110000

Resultado9010010000

Se activaron las banderas SF y PF.

Segundo ANDcx2CC20010101010100010

bx0F0F0000111100001111

Resultado0C020000101000000010

Se desactivaron las banderas SF y PF.

Tercer ANDcx0C020010101010100010

cx0C020010101010100010

Resultado0C020010101010100010

No se activ ni desactivo ninguna bandera.

5) Modifique las lneas que contienen la instruccin AND, sustituyndola por la instruccin OR. Repita desde el paso 4. Primer ORdl009A10011010

ahF00011110000

ResultadoFA11111010

Se activaron las banderas SF y PF.

Segundo ORcx2CC20010101010100010

bx0F0F0000111100001111

Resultado2FAF0010111110101111

Se desactiva la bandera SF.

Tercer ORcx2FAF0010111110101111

cx2FAF0010111110101111

Resultado2FAF0010111110101111

No se activ ni desactivo ninguna bandera.

6) Sustituya ahora por la instruccin XOR y repita el paso 4. Primer XORdl009A10011010

ahF00011110000

Resultado6A01101010

Se activ PF.

Segundo XORcx2CC20010110011000010

bx0F0F0000111100001111

Resultado23CD0010001111001101

Se desactivo PF.

Tercer XOR cx23CD0010001111001101

cx23CD0010001111001101

Resultado0C020000000000000000

Se activaron ZF y PF.

7) Digite el SEGUNDO PROGRAMA, que est dividido en dos partes.

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

Primer XORdl001A00011010

ah2CC200101100

Resultado3600110110

Se activ la bandera PF.

Segundo XORdl003600110110

00FF11111111

ResultadoC911001001

Se activ la bandera SF.

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

Tercer XORdl001A00011010

ah2CC200101100

Resultado3600110110

Se desactivo la bandera SF.

NOTdl003600110110

ResultadoC911001001

10) Modifique la tercera y sptima instruccin del programa escribiendo xor ah, dl

11) Repita los pasos 8 y 9 qu diferencias nota?

Primer bloque

Primer XORah2CC200101100

dl001A00011010

Resultado3600110110

Se activ la bandera PF.

Segundo XORdl001A00011010

00FF11111111

ResultadoE511100101

Se activ la bandera SF y se desactivo PF.

Segundo bloque

Tercer XORah2CC200101100

dl001A00011010

Resultado3600110110

Se desactivo la bandera SF y se activ PF.

NOTdl001A00011010

ResultadoE511100101

Se activaron y desactivaron las mismas banderas pero en diferente orden.

13) 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:

13) Ejecute paso a paso el programa monitoreando simultneamente el estado de las banderas, note como se activan o desactivan. Cules son sus conclusiones? Que se pueden modificar las banderas manualmente con el ingreso de algunos comandos, como: stc, std, cli, clc, cld, sti, etc. Donde cl se usa para desactivar y st para activar.

14) Digite el TERCER PROGRAMA:

15) Ejecute solo las primeras dos instrucciones, monitoreando las banderas Cules se activaron?, cul fue el resultado de la operacin? cmo interpreta el resultado? Se activaron las banderas PF y ZF.

ANDahB90010111001

4001000000

Resultado0000000000

ah almacena un 00, es por eso que la bandera ZF se activ, y tambin que es un numero par por eso PF se activ.

16) Ejecute hasta la instruccin TEST y conteste otra vez las preguntas del punto 15 del procedimiento. Se desactivaron ZF y PF luego de ejecutar la instruccin OR, y cuando se ejecut la instruccin TEST se activaron nuevamente, pero con TEST no cambiaron los valores de ah.ORahB90000000000

010100000001

Resultado0000000001

TESTahB90010111001

40h4001000000

Resultado4001000000

17) En las instrucciones 2 y 5 cambie los dos datos 40h por 08h y repita los pasos del 14 al 16, cmo se modific el resultado del programa? Anote su respuesta. .

Luego de AND no se activa ninguna bandera, luego de OR se activa la bandera PF, y por ultimo cuando se ejecuta la instruccin TEST se desactiva la bandera PF.

ANDahB90010111001

08h0800001000

Resultado0000001000

ORahB90000001000

010100000001

Resultado0000001001

TESTahB90010111001

080800001000

Resultado4010111001

Z = Zero flag: El resultado es cero.N = Negative flag: El resultado es negativo.V = Overflow flag: El resultado supera el nmero de bits que puede manejar la ALU.P = Parity flag: Paridad del nmero de 1 en los datos.I = Interrupt flag: Se ha producido una interrupcin.C = Carry flag: Acarreo de la operacin realizada.

ANALISIS DE RESULTADOS

a) Primer programa.

Qu objetivos se buscan al usar la mascara1 (F0h) con las tres diferentes instrucciones lgicas?Denotar la notable diferencia que tiene los tres tipos de puertas logicas.

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?Esto se debe a que ya se encuentra activada anteriormente y es por eso que se conserva.

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?Porque XOR realiza una comparacin de similitud.

En el programa se declaran datos para hacer las operaciones dnde se guardan estos datos?Estos datos se almacenan en memoria principal.

b) Segundo programa.

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?Porque las operaciones lgicas que se van realizando, hacen que cambien los flags

Al modificar el programa, tanto los resultados como las banderas terminaron en distintos estados cules fueron los cambios especficos que observo?Los valores de las operaciones se almacenan en el registro que se le ha indicado.

c) Tercer programa.

Cul es la diferencia fundamental que noto a comparar las instrucciones AND y TEST?AND realiza una comparacin la cual modifica y almacena el resultado en un resgistro, tambin la bandera respectiva se activa o desactiva.TEST realiza la operacin lgica "AND" de dos operandos, pero NO afecta a ninguno de ellos, SLO afecta al registro de estado.

Afecta a todos los bits del registro de estado, de la misma manera que la instruccin AND.

Qu relacin existe entre los bit que deseamos probar y el valor especfico de la mascara seleccionada?La mascara nos permite cambiar varias instrucciones; en cambio el bit lo asignamos por cada instruccin.

TAREA COMPLEMENTARIA

En el programa se declaran algunos datos que sern operados dnde se almacenan estos datos?DB, DW y DD se usan para asignar espacio a las variables en memoria. DB tamao byte, DW tamao WORD y DD tamao DWORD.

Escriba un programa que dado un dato almacenado en AX 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.