Las instrucciones de bifurcación se refieren al acto de cambiar la ejecución a una secuencia de instrucciones diferente como resultado de ejecutar una instrucción de bifurcación.
Los tres tipos de instrucciones de bifurcación son:
- Saltar (incondicional y condicional)
- Llamada (incondicional y condicional)
- Retorno (incondicional y condicional)
1. Instrucciones de salto: la instrucción de salto transfiere la secuencia del programa a la dirección de memoria dada en el operando según el indicador especificado. Las instrucciones de salto son de 2 tipos: instrucciones de salto incondicionales e instrucciones de salto condicionales.
(a) Instrucciones de salto incondicional: transfiere la secuencia del programa a la dirección de memoria descrita.
CÓDIGO DE OPCIÓN | OPERANDO | EXPLICACIÓN | EJEMPLO |
---|---|---|---|
JMP | Dirección | Salta a la dirección | JMP 2050 |
(b) Instrucciones de salto condicional: transfiere la secuencia del programa a la dirección de memoria descrita solo si se cumple la condición.
CÓDIGO DE OPCIÓN | OPERANDO | EXPLICACIÓN | EJEMPLO |
---|---|---|---|
JC | Dirección | Salta a la dirección si la bandera de acarreo es 1 | JC 2050 |
JNC | Dirección | Salta a la dirección si la bandera de acarreo es 0 | JNC 2050 |
JZ | Dirección | Salta a la dirección si el indicador cero es 1 | JZ2050 |
JNZ | Dirección | Salta a la dirección si el indicador cero es 0 | JNZ 2050 |
JPE | Dirección | Salta a la dirección si el indicador de paridad es 1 | JPE 2050 |
JPO | Dirección | Salta a la dirección si el indicador de paridad es 0 | JPO 2050 |
JM | Dirección | Salta a la dirección si el indicador de señal es 1 | JM 2050 |
JP | Dirección | Salta a la dirección si muestra la bandera 0 | JP 2050 |
2. Instrucciones de llamada: la instrucción de llamada transfiere la secuencia del programa a la dirección de memoria dada en el operando. Antes de transferir, la dirección de la siguiente instrucción después de CALL se coloca en la pila. Las instrucciones de llamada son de 2 tipos: instrucciones de llamada incondicional e instrucciones de llamada condicional.
(a) Instrucciones de llamada incondicional: Transfiere la secuencia del programa a la dirección de memoria dada en el operando.
CÓDIGO DE OPCIÓN | OPERANDO | EXPLICACIÓN | EJEMPLO |
---|---|---|---|
LLAMAR | Dirección | Llamadas incondicionales | CONVOCATORIA 2050 |
(b) Instrucciones de llamada condicional: solo si se cumple la condición, las instrucciones se ejecutan.
CÓDIGO DE OPCIÓN | OPERANDO | EXPLICACIÓN | EJEMPLO |
---|---|---|---|
CC | Dirección | Llamar si la bandera de acarreo es 1 | CC 2050 |
CNC | Dirección | Llamar si la bandera de acarreo es 0 | CNC 2050 |
CZ | Dirección | Llama si el indicador cero es 1 | CZ 2050 |
CNZ | Dirección | Llama si el indicador cero es 0 | CNZ 2050 |
EPC | Dirección | Llama si el indicador de paridad es 1 | CPE 2050 |
CPO | Dirección | Llama si el indicador de paridad es 0 | CPO 2050 |
CM | Dirección | Llamadas si el indicador de signo es 1 | CM 2050 |
PC | Dirección | Llama si el indicador de signo es 0 | CP 2050 |
3. Instrucciones de retorno: la instrucción de retorno transfiere la secuencia del programa de la subrutina al programa que llama. Las instrucciones de devolución son de 2 tipos: instrucciones de salto incondicional e instrucciones de salto condicional.
(a) Instrucción de retorno incondicional: La secuencia del programa se transfiere incondicionalmente desde la subrutina al programa que llama.
CÓDIGO DE OPCIÓN | OPERANDO | EXPLICACIÓN | EJEMPLO |
---|---|---|---|
RETIRADO | ninguna | Regreso de la subrutina incondicionalmente | RETIRADO |
(b) Instrucción de retorno condicional: la secuencia del programa se transfiere incondicionalmente de la subrutina al programa que llama solo si se cumple la condición.
CÓDIGO DE OPCIÓN | OPERANDO | EXPLICACIÓN | EJEMPLO |
---|---|---|---|
RC | ninguna | Regresa de la subrutina si la bandera de acarreo es 1 | RC |
RNC | ninguna | Regresa de la subrutina si la bandera de acarreo es 0 | RNC |
RZ | ninguna | Regresa de la subrutina si el indicador cero es 1 | RZ |
RNZ | ninguna | Regresa de la subrutina si el indicador cero es 0 | RNZ |
EPR | ninguna | Regresa de la subrutina si el indicador de paridad es 1 | EPR |
RPO | ninguna | Regresa de la subrutina si el indicador de paridad es 0 | RPO |
RM | ninguna | Regresa de la subrutina si el indicador de signo es 1 | RM |
PR | ninguna | Regresa de la subrutina si el indicador de signo es 0 | PR |