Instrucciones de control de flujo

Solo disponible en BuenasTareas
  • Páginas : 6 (1406 palabras )
  • Descarga(s) : 0
  • Publicado : 11 de diciembre de 2010
Leer documento completo
Vista previa del texto
U.N.S.A F.I.P.S
ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS
CURSO: ARQUITECTURA DE COMPUTADORAS

QUINTA PRÁCTICA DE LABORATORIO

INSTRUCCIONES DE CONTROL DE FLUJO

III. ACTIVIDADES

1. Escriba y emule el programa

.model small
.stack
.data
mem db 10 DUP ('x') ;Inicializa 10 espacios de memoria
;con caracter 78h
.code

inicio:
mov ax, @DATA
mov ds, ax
moval,0FFh ;Dato
mov bx,000Ah ;Contador
BUCLE: mov mem[bx],al ;copia dato en mem
dec bx ;Decrementa BX
jnz BUCLE ;Repite si la bandera Z= 0
mov ax,4C00h
int 21h
End

2. ¿Cuáles son las direcciones de las etiquetas INICIO y BUCLE?

INICIO: 07210
BUCLE: 0721A
3. ¿Cuál es la dirección de la cadena mem?

MEN: va desde la dirección 07200 hasta 07209.4. Ejecute paso a paso y monitoree los cambios en mem, construya una tabla.

Nº | 07200 | 07201 | 07202 | 07203 | 07204 | 07205 | 07206 | 07207 | 07208 | 07209 |
1 | 78h | 78h | 78h | 78h | 78h | 78h | 78h | 78h | 78h | 78h |
2 | 78h | 78h | 78h | 78h | 78h | 78h | 78h | 78h | 78h | 0FFh |
3 | 78h | 78h | 78h| 78h | 78h | 78h | 78h | 78h | 0FFh | 0FFh |
4 | 78h | 78h | 78h | 78h | 78h | 78h | 78h | 0FFh | 0FFh | 0FFh |
5 | 78h | 78h | 78h | 78h | 78h | 78h | 0FFh | 0FFh | 0FFh | 0FFh |
6 | 78h | 78h | 78h | 78h | 78h | 0FFh | 0FFh | 0FFh | 0FFh | 0FFh |
7 | 78h | 78h | 78h | 78h | 0FFh | 0FFh | 0FFh | 0FFh | 0FFh | 0FFh|
8 | 78h | 78h | 78h | 0FFh | 0FFh | 0FFh | 0FFh | 0FFh | 0FFh | 0FFh |
9 | 78h | 78h | 0FFh | 0FFh | 0FFh | 0FFh | 0FFh | 0FFh | 0FFh | 0FFh |
10 | 78h | 0FFh | 0FFh | 0FFh | 0FFh | 0FFh | 0FFh | 0FFh | 0FFh | 0FFh |


5. ¿Cuántas veces se ejecutó la instrucción MOV?
Contando dentro del bucle(10 veces) y fuera de ella en total es 15 veces.6. Digite y guarde el programa

.model small
.stack
.data

dato 1 db 0FFh, 0FFh
dato 2 dB 0FFh, 0FFh
resul db 00, 00, 00

.code
inicio: N mov ax, @DATA
mov ds, ax
xor si,si ;Inicializa registro
clc ;C = 0 ;Inicializa banderas
pushf ;guarda banderas en la PILA
BUCLE popf ;saca banderas de la PILA
mov al,dato1[si] ;carga dato en AL
adc al,dato2[si] ;suma almas dato2
mov resul[si],al ;guarda en resultado
pushf
inc si ;incrementa SI
cmp si, 02
jc BUCLE ;salte si C = 1
popf ;saca banderas de la PILA
mov al,0 ;borra AL
adc al,0 ;carga el acarreo en AL
mov resul[si],al ;último byte del resultado
mov ax,4C00h
int 21h
end

7. Cierre el emulador. Actívelo nuevamente y cargue el programa anterior, con ello se aseguraresetear la memoria del emulador
8. Visualice el contenido de STACK y las banderas, verifique que coincida la dirección de PILA y SS:SP

9. Ejecute paso a paso luego de la quinta instrucción ¿qué cambios sufrió PILA?

Cambio la pila de FFFF a 0246 debido al pop el pushf decrementa en 2 al sp de 0100 a 00FE


10. Para las instrucciones siguientes, registre el resultadode la operación, el estado de las banderas y el dato almacenado en PILA

Instrucción | FLAGS | Resultado de la operación | Dato almacenado en la pila |
| C | Z | S | O | P | A | I | D | | |
popf | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 0 | SP=0100 | FFFF |
mov al,dato1[si] | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 0 | AL=FF | FFFF |adc al,dato2[si] | 1 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | AL=FE | FFFF |
| |
mov resul[si],al | 1 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | RESUL=0FEh | FFFF |
pushf | 1 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | SP=00FE | 0293 |
inc si | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | SI=0001 | 0293 |
| |
cmp si, 02 | 1 | 0...
tracking img