En las computadoras, una subrutina es una secuencia de instrucciones de programa que realizan una tarea específica, empaquetadas como una unidad. Esta unidad se puede usar en programas donde sea que se deba realizar esa tarea en particular. Una subrutina a menudo se codifica para que pueda iniciarse (llamarse) varias veces y desde varios lugares durante una ejecución del programa, incluso desde otras subrutinas, y luego retroceder (regresar) a la siguiente instrucción después de la llamada, una vez que la subrutina haya terminado. la tarea está hecha. Se implementa mediante el uso de instrucciones de llamada y devolución. Los diferentes tipos de instrucciones de subrutina son
Instrucción de llamada incondicional:
la dirección de LLAMADA es el formato para la instrucción de llamada incondicional. Después de la ejecución de esta instrucción, el control del programa se transfiere a una subrutina cuya dirección inicial se especifica en la instrucción. El valor de PC (Contador de programa) se transfiere a la pila de memoria y el valor de SP (Puntero de pila) se reduce en 2.
Instrucción de llamada condicional:
en estas instrucciones, el control del programa se transfiere a la subrutina y el valor de la PC se coloca en la pila solo si se cumple la condición.
INSTRUCCIÓN | PARÁMETRO | COMENTARIO |
---|---|---|
CC | dirección de 16 bits | Llamar a la dirección si cy (bandera de acarreo) = 1 |
CNC | dirección de 16 bits | Llamar a la dirección si cy (bandera de acarreo) = 0 |
CZ | dirección de 16 bits | Llamar a la dirección si ZF (bandera cero) = 1 |
CNZ | dirección de 16 bits | Llamar a la dirección si ZF (bandera cero) = 0 |
EPC | dirección de 16 bits | Llamar a la dirección si PF (bandera de paridad) = 1 |
CPO | dirección de 16 bits | Llamar a la dirección si PF (bandera de paridad) = 0 |
CN | dirección de 16 bits | Llamar a la dirección si SF (bandera firmada) = 1 |
PC | dirección de 16 bits | Llamar a la dirección si SF (bandera firmada) = 0 |
Instrucción de retorno incondicional:
RET es la instrucción utilizada para marcar el final de la subrutina. No tiene parámetro. Después de la ejecución de esta instrucción, el control del programa se transfiere de nuevo al programa principal desde donde se había detenido. El valor de PC (Contador de programa) se recupera de la pila de memoria y el valor de SP (Puntero de pila) se incrementa en 2.
Instrucción de retorno condicional:
mediante estas instrucciones, el control del programa se transfiere de nuevo al programa principal y el valor de la PC se extrae de la pila solo si se cumple la condición. No hay ningún parámetro para la instrucción de retorno.
INSTRUCCIÓN | COMENTARIO |
---|---|
RC | Regresa de la subrutina si cy (bandera de acarreo) = 1 |
RNC | Regresa de la subrutina si cy (bandera de acarreo) = 0 |
RZ | Regreso de la subrutina si ZF (bandera cero) = 1 |
RNZ | Regreso de la subrutina si ZF (bandera cero) = 0 |
EPR | Regreso de la subrutina si PF (bandera de paridad) = 1 |
RPO | Regreso de la subrutina si PF (bandera de paridad) = 0 |
enfermero | Regreso de la subrutina si SF (bandera firmada) = 1 |
PR | Regreso de la subrutina si SF (bandera firmada) = 0 |
Ventajas de la subrutina –
- Descomponer una tarea de programación compleja en pasos más simples.
- Reducir el código duplicado dentro de un programa.
- Permitir la reutilización de código en varios programas.
- Mejora la manejabilidad o facilita la depuración de un programa.
Publicación traducida automáticamente
Artículo escrito por harshit-chhabra y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA