El siguiente programa es un ejemplo sencillo de como funciona el ciclo de repeticion equivalente al for
Programa que imprime una lista y suma todos sus componentes
org 100h;iniciamos en la direccion 100h de la memoria
mov bx,0 ; utilizaremos un contador en bx para movernos dentro de la lista, este inicia en cero
mov cx,5; en cx se declara el numero de repeticiones del loop nuestra lista tendra un tamaño de 5 asi que con 5 repeticiones basta
repetir: ; aqui empezara el loop, tenemos nuestro loop con la etiqueta repetir:
; aqui debemos poner todas las acciones que queremos que se repitan
mov al,lista[bx]; copiamos el contenido almacenado en lista[posicion] en al
add suma, al ; sumamos a la variable suma el valor contenido en al, es como suma=suma+al
add bx,1; movemos nuestra posicion de la lista para la siguiente repeticion
loop repetir ; al llegar aqui saltara a la etiqueta repetir:
ret ; abajo de ret declararemos todos nuestras variables
lista db 4,3,5,78,1 ; declaramos nuestra lista en data byte con los valores 4,3,5,78,1
suma db 0; inicializamos una variable suma para almacenar el total de la suma de la lista
Ejecutamos nuestro codigo en emu8086, viendo las variables
Ahora veremos otro ejemplo con listas
Programa para determinar el mayor de una lista
org 100h
mov bx,0
mov cx,n
repeticion:
mov ax,lista[bx]
cmp ax,mayor
jg cambiar
jmp continuar
cambiar:
mov mayor,ax
continuar:
add suma,ax
add bx,2
loop repeticion
ret
n dw 5
lista dw 4,3,5,7,1
suma dw 0
mayor dw 0
Ejecutamos el codigo en emu8086
a modo de ejercicio intenten sacar el menor de la lista