En este apartado, se tratará cómo realizar que una porción de código, cualquiera, se repita n veces, con la peculiaridad de que todo esté controlado por un "contador" que se va incrementando una vez se ejecute dicho bloque de código deseado.
Declararemos un índice o contador que se encargará de fijar el número de repeticiones, al ser dicha variable de 8-bits, su tamaño máximo, por lo tanto, las repeticiones máximas que serán posibles será de 255 veces.
for(Contador=0; Contador==numero; Contador++)
{
sentencia; // Bloque de Código
}
La forma de actuar esta sentencia de control es la siguiente: Repetir la sentencia hasta que la variable contador sea igual a la constante numero que determinará el número de repeticiones.
La traducción a código ensamblador sería tal como sigue:
····· ········
clrf Contador ; 0 -> Contador
movlw numero ; Número de repeticiones
movwf Numero ; Se carga a Numero
FOR
subwf Contador,w ; (Contador) - (W) -> (W)
btfss STATUS,Z ; ¿Contador == numero?
goto Bucle_FOR ; NO -> Sigue con el bucle for
goto Salir ; SI -> Sal del bucle for
Bucle_FOR
····· ········ ; Aqí el bloque de código a repetir
movf Numero,w ; Numero -> (W)
incf Contador,f ; Contador++
goto FOR ; Sigue con el for
Salir
····· ········ ; Fin de repeticiones
Primero se hace un reset a la variable Contador, que será la que se encargue del número de repeticiones del bucle for, posteriormente, se inicializará la variable Numero con la cantidad total de repeticiones.
Una vez inicializadas las variables, se comprobará si Contador es igual a Numero, en caso negativo, se ejecutará la sentencia del bucle for (donde se incrementará en una unidad la variable Contador), en caso contrario, ser afirmativo, se saldrá del bucle.
Los ciclos de máquina que el código anterior, el cual compone la sentencia for con postincremento, son:
+1 +1 +1 +(+1 +1 +2 +Bloque_Código +1 +1 +2)·Contador = +8 +(+8 +Bloque_Código)·Contador
Una vez cargada la variable Contador, se repetirá el código deseado el número de veces prefijado con anterioridad. La trama de este código no es más que fijar el código que se desea repetir y posteriormente, incrementar en una unidad, la variable Contador para evaluarla después con el fin de comprobar si ya se ha llegado al número de repeticiones deseadas.
0 comentarios:
Publicar un comentario