los bucles loop van acompañados de registros ax es un contador y en el es el numero de vueltas que dara nuestro ciclo
si yo digo que ax=10
se usa inc para incrementar
y se usa dec para decremenntar
Control de Bucles (instrucciones simples)
Éstas posibilitan el grupo de control más elemental de nuestros programas. Un bucle es un bloque de código que se ejecuta varias veces. Hay 4 tipos de bucles básicos:
o Bucles sin fin o Bucles por conteo o Bucles hasta o Bucles mientras
Las instrucciones de control de bucles son las siguientes:
• • INC incrementar
• • DEC decrementar
• • LOOP realizar un bucle
• •LOOPZ,LOOPE realizar un bucle si es cero
• • LOOPNZ,LOOPNE realizar un bucle si no es cero
• • JCXZ salta si CX es cero
ejemplos
#1 ejemplo de bucle 1:
org 100h
include 'emu8086.inc';libreria para las letras
mov cx,10;darle el valor de 10 a cx
comienzo: ;inicio de la funcion
printn 'letrero' ;letrero
inc cx ;incrementar cx
LOOP comienzo ;inicio del bucle
ret
Capturas de ejecucion del programa
#2 CREACION DE UN BUCLe:
.MODEL tiny
NAME "BUCLE"
.DATA
dato db 10,13,"letrero $" ,13,10
.code
INICIO:
mov cx,2
comienzo:
mov dx,OFFSET dato:
mov ah,09
int 21h
loop comienzo
ret
end
#3 ejemplo de bucle 3 (cambio la salida en pantalla)
.MODEL tiny
NAME "BUCLE"
.DATA
dato db 10,13,"letrero $" ,13,10
.code
INICIO:
mov cx,2
comienzo:
lea dx,dato
mov ah,09
int 21h
loop comienzo
ret
end
captura del programa en ejecucion:
#4 ejemplo con loopne
este ejemplo hace la utilizacion de las banderas.\
.MODEL tiny
NAME "BUCLE"
.DATA
dato db 10,13,"letrero $" ,13,10
.code
INICIO:
mov cx,10
comienzo:
lea dx,dato
mov ah,09
int 21h
loopne comienzo ;esto es lo que cambia en ejemplo al anterior
ret
end
captura de la ejecucion:
#5 ejemplo de la ejecucion con jcxz:
.MODEL tiny
NAME "BUCLE"
.DATA
dato db 10,13,"letrero $" ,13,10
.code
INICIO:
mov cx,0
comienzo:
lea dx,dato
mov ah,09
int 21h
jcxz comienzo ;esto es lo que cambia en ejemplo al anterior
ret
end
captura de la ejecucion:
No hay comentarios.:
Publicar un comentario