Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Gua 5 1
Objetivos especficos
Analizar el uso de algunas instrucciones de control de flujo, haciendo nfasis en las condiciones
(estado de las banderas) que se necesitan para realizar o no el salto.
Aplicar algunas instrucciones de control de flujo en la resolucin de problemas simples como la
realizacin de un lazo repetitivo y la comparacin entre dos datos.
Mostrar la manera de guardar y extraer informacin de la PILA.
Usar la PILA como un dispositivo de almacenamiento temporal de datos.
Analizar la relacin que hay entre la PILA y el registro puntero de pila SP.
Materiales y equipo
Procedimiento
2) Analice el PRIMER PROGRAMA, ayudado del flujo-grama y los comentarios que explican su
funcionamiento.
3) Digite y emule el programa. Antes de ejecutarlo copie, lnea a lnea, el programa desensamblado en
la columna respectiva as como se muestra en el ejemplo.
Cules son las direcciones de las etiquetas INICIO y BUCLE?
____________________________________________________________________________________
2 Microprocesadores. Gua 5
PRIMER PROGRAMA
Programa
Cdigo Fuente
desensamblado
.model small
.stack
.data
mem db 10 DUP ('x') ;Inicializa 10 .
;espacios de .
;memoria con .
;caracter 78h .
.
.code .
inicio: .
.
mov ax, @DATA MOV AX,00720H
mov ds, ax MOV DS,AX
mov al,0FFh ;Dato MOV AL,0FFH
mov bx,000Ah;Contador
bucle:
mov ax,4C00h
int 21h
end
4) Localice la ubicacin (direcciones) de la cadena mem. Anote las direcciones y su contenido en la
Tabla 1.
5) Ejecute paso a paso monitoreando los cambios que se dan en mem. Al final anote el contenido final
en Tabla 1.
6) Ejecute nuevamente el programa, contando las veces que se ejecuta la instruccin mov mem[bx],
al y monitoreando el registro de banderas, sobre todo antes y despus de la operacin de
decremento
Cuntas veces se realiz la instruccin MOV? ______
Qu caus el rompimiento del lazo de repeticin? _______________________
7) Modifique el cdigo de manera que los cambios solo afecten a los elementos de la cadena mem.
Cuando lo logre notifquelo a su docente de laboratorio.
8) Emule el SEGUNDO PROGRAMAtomando nota del contenido inicial de las cadenas fuente y
destino y el intervalo de direcciones donde estn almacenadas.
____________________________________________________________________________________
____________________________________________________________________________________
9) Ejecute paso a paso observando las modificaciones en las cadenas y las banderas. No pierda de vista
el registro contador CX.
____________________________________________________________________________________
____________________________________________________________________________________
11) Ejecute nuevamente el programa y cuente las veces que se almacenan datos en la cadena destino
_______
Cul es la instruccin que hace el salto condicional? _________
Qu caus el rompimiento del lazo de repeticin? _______________________
SEGUNDO PROGRAMA
Cdigo Fuente
.model small
.stack
.data
fuente db 48,49,50,51,52,53,54,55,56,57
destino db 10 DUP (4Dh) ;destino 4Dh = 'M'
.code
inicio:
mov ax, @DATA
mov ds, ax
mov cx,10 ;Contador
4 Microprocesadores. Gua 5
inc si
CX = CX - 1
end
NO
CX = 00h
SI
FIN
12) Ahora analice el TERCER PROGRAMA, note que emplea instrucciones que cargan y extraen datos de
la PILA.
15) Active nuevamente el emulador. Esto se hizo para borrar la memoria del emulador y que no
interfieran los resultados anteriores con el nuevo programa.
17) Visualice el contenido de la PILA (STACK) dando clic en el botn stack , le aparecer una ventana
como la mostrada en la Figura 5.1 (el simbolo > indica cual es exactamente la localidad que se
esta apuntando)
Figura 5.1
____________________________________________________________________________________
____________________________________________________________________________________
TERCER PROGRAMA
Cdigo Fuente
.model small
.stack
.data
.code
inicio:
mov ax, @DATA
mov ds, ax
xor si,si ;Inicializa registro
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
26) Antes de ejecutar JC Se dar el salto o no? __________
Microprocesadores. Gua 5 7
28) Ahora se repetir el bloque aritmtico. Responda nuevamente a las preguntas del punto 22, para la
situacin actual
____________________________________________________________________________________
____________________________________________________________________________________
31) El siguiente bloque involucra al salto condicional otra vez saltar de nuevo? Por qu?
____________________________________________________________________________________
____________________________________________________________________________________
32) Comprubelo.
Anlisis de Resultados
a) Primer programa.
b) Segundo programa.
c) Tercer programa.
1. Qu funcin cumple la instruccin CLC?
8 Microprocesadores. Gua 5
Investigacin Complementaria
Bibliografa
Brey, B. B. Los Microprocesadores Intel. 8086 / 8088, 80186, 80286, 80386 y 80486.
Arquitectura, programacin e interfaces, tercera edicin Prentice Hall, Mxico DF, 1997.
Biblioteca UDB 001.6404 B847 1997
Puede consultar el material en lnea del EMU8086 sobre los temas de esta actividad. Se
recomiendan:Program flow control
http://www.emu8086.com/assembly_language_tutorial_assembler_reference/asm_tutorial_07.html