Una de las instrucciones más habituales en un lenguaje de programación de alto nivel, es la sentencia FOR-NEXT. Para nuestros autómatas, tenemos la instrucción LOOP en Step 7.
Para comenzar, podrías leerte el post en el que ya hablábamos de ello. Podrás encontrar un ejemplo también en ese post. Pero vayamos nuevamente y repasemos esto de los loop en step 7.
Loop en Step 7
La forma de operar es la siguiente: LOOP META. Ya está, no hay más... más o menos.
La idea es que cuando llega la ejecución de la operación se lee el contenido del ACU1, se le resta uno, y si aún hay algo que rascar (es decir, no es cero), se realiza un salto hasta la META.
¿Y cómo hago un FOR NEXT con LOOP en Step 7?
Bien, la fórmula de la Coca-Cola esta vez es muy sencilla:
L Numero_Iteraciones --> Cargamos cuántas veces queremos hacer el loop
NEXT: T Indice_Iteraciones --> Lo transferimos a la variable auxiliar que lleva la cuenta de vueltas
<<<Código que queremos que se ejecute N veces>>>
L Indice_Iteraciones --> Leemos el número de vueltas que llevamos y lo cargamos en el ACU1
LOOP NEXT --> Restamos una unidad a lo cargado en el ACU1, es decir, al número de iteraciones y saltamos a la meta NEXT si el resultado no es cero.
Yo he llamado a mi meta NEXT para que sea como en los lenguajes de alto nivel, pero podemos llamarle PEPE si quieres.
Vamos, que lo que hacemos es inicialmente cargar a tope con el número de iteraciones a una variable auxiliar que será nuestro índice. Por ejemplo 10.
Ejecutamos el código repetitivo y lo último que hacemos es cargar este índice nuevamente. Luego, al ejecutar la operación LOOP, restaremos una unidad a ese 10 inicial, teniendo en el acumulador entonces 9 y salta a la meta NEXT.
Si te fijas, lo primero que hacemos es volcar nuevamente este 9 al indice... ejecutaremos, cargamos el 9, restamos uno en el loop y saltamos a NEXT, teniendo un 8... y así sucesivamente.



