1. Subrutina:
un conjunto de instrucciones que se utilizan repetidamente en un programa se puede denominar subrutina. Solo se almacena una copia de esta Instrucción en la memoria. Cuando se requiere una subrutina, se puede llamar muchas veces durante la ejecución de un programa en particular. Una Instrucción de llamada a Subrutina llama a la Subrutina. Se debe tener cuidado al devolver una Subrutina ya que la Subrutina se puede llamar desde un lugar diferente de la memoria.
El contenido del PC debe ser Guardado por la Instrucción de Subrutina de llamada para realizar un retorno correcto al programa de llamada.
Figura – Proceso de una subrutina en un programa
El método de vinculación de subrutinas es una forma en que las computadoras llaman y devuelven la subrutina. La forma más sencilla de vincular subrutinas es guardar la dirección de retorno en una ubicación específica, como un registro que se puede denominar subrutina de llamada de registro de vínculo.
2. Anidamiento de subrutinas:
el anidamiento de subrutinas es una práctica de programación común en la que una subrutina llama a otra subrutina.
Figura – Subrutina llamando a otra subrutina
De la figura anterior, suponga que cuando la Subrutina 1 llama a la Subrutina 2, la dirección de retorno de la Subrutina 2 debe guardarse en algún lugar. Entonces, si el registro de enlace almacena la dirección de retorno de la Subrutina 1, esta será ( destruida/sobreescrita ) por la dirección de retorno de la Subrutina 2. Como la última Subrutina llamada es la primera en ser devuelta (formato Último en entrar, primero en salir). Entonces, la estructura de datos de pila es la forma más eficiente de almacenar las direcciones de retorno de las subrutinas.
Figura: la dirección de retorno de la subrutina se almacena en la memoria de pila
3. Memoria de pila: la
pila es una estructura de datos básica que se puede implementar en cualquier lugar de la memoria. Puede ser utilizado para almacenar variables que puedan ser requeridas posteriormente en la Ejecución del programa. En una pila, el primer dato ingresado será el último en salir de una pila. Entonces, los últimos datos agregados serán los primeros en salir de la pila (último en entrar, primero en salir).
Figura: memoria de pila con datos A, B y C
Entonces, del diagrama anterior, primero se agrega A, luego B y C. Mientras se elimina la primera C, se elimina luego B y A.