En las arquitecturas de conjuntos de instrucciones de computadora (ISA) , una instrucción repetida es una instrucción en lenguaje de máquina que ejecuta repetidamente otra instrucción un número fijo de veces, o hasta que se cumpla alguna condición.
Dado que es una instrucción que opera sobre otras instrucciones como la instrucción de ejecución , se ha clasificado como una metainstrucción. [1]
El Univac 1103 (1953) incluye una instrucción de repetición ( código mnemotécnico de operación : RPjnw ) que ejecuta la siguiente instrucción un número fijo de veces, posiblemente incrementando uno o ambos campos de dirección de esa instrucción. [2] Esto compensa la falta de registros de índice de la arquitectura . [3]
La serie GE-600 / Honeywell 6000 (1964) admite una repetición de instrucción única ( RPT ), una repetición de instrucción doble ( RPTD ) y una repetición de lista enlazada ( RPL ). [4] [5]
El ISA x86 , comenzando con el 8086 , incluye una serie de instrucciones de repetición de propósito especial ( REP(∅/E/Z/NE/NZ) ) que se denominan "prefijos de operación de cadena de repetición" y solo se pueden aplicar a un número pequeño de instrucciones de cadena ( INS, OUTS, MOVS, LODS, STOS, CMPS, SCAS ). Estas instrucciones repiten una operación y disminuyen un contador hasta que llega a cero, o también pueden detenerse cuando se cumple una determinada condición. [6]
El procesador de señal digital Texas Instruments TMS320 (1983) incluye una instrucción para repetir una instrucción de un solo ciclo o dos instrucciones de un solo ciclo en paralelo ( RPT ) y una instrucción para repetir un bloque de instrucciones ( RPTC ). Estos utilizan registros contadores de repetición de bloques especiales ( BRC0, BRC1 ). [7]
La instrucción o par de instrucciones a ejecutar sigue a la instrucción repetida . Los campos de la instrucción determinan la condición de terminación del bucle. [5] En el caso del TMS320 se puede repetir un bloque de hasta 64Kbytes. [7]