Subrutinas y procedimientos en el ordenador VAX-11.
Subprogramas
Para usar subrutinas en un sistema VAX-11, necesita un par de instrucciones para pasar y regresar a una subrutina, conectar el programa principal y la subrutina. Además, necesita un método bien definido para pasar parámetros para enviar datos hacia y desde una subrutina. Al mismo tiempo, a menudo es necesario guardar y restaurar el contenido de algunos registros generales. Todos estos requisitos son implementados por el programador. En VAX-11, los programadores, en lugar de usar las instrucciones JSP y RTS como un par, pueden usar la instrucción BSBB (rama de byte a subrutina) y la instrucción BSBW (palabra de rama a subrutina) para ingresar a la subrutina dependiendo de la distancia relativa entre la instrucción de llamada y la dirección de inicio llamada subrutina. Los programadores utilizan la instrucción RSB (retorno de una subrutina) para regresar al sistema VAX-11.
Cuando la unidad central de procesamiento (CPU) ejecuta la instrucción de transición a la subrutina, inserta el contenido corregido del registro de PC en la pila y coloca el valor de dirección de la etiqueta SUBR en el registro de PC. Al ejecutar la instrucción de retorno, los contenidos corregidos del registro de PC se eliminan de la pila y se colocan nuevamente en el registro de PC.
Procedimientos
De hecho, el procedimiento es una subrutina, pero con reglas de diseño más estrictas. Se crea para la comodidad del usuario. Para escribir un subprograma, el programador debe seleccionar e implementar el método apropiado de paso de parámetros. El programador también es responsable de guardar y restaurar el contenido de los registros de propósito general con la ayuda de la memoria de pila (si es necesario). Aunque estos requisitos están justificados, requieren mucho tiempo del programador, especialmente si a menudo es necesario guardar y restaurar el contenido del registro.
Normalmente, los contenidos almacenados de los registros se mezclan con otra información en un bloque de memoria de pila relacionado con el mismo puntero de pila. El proceso se puede simplificar considerablemente si tiene un puntero diseñado específicamente para el proceso de almacenamiento y un puntero para transportar datos. Esta idea se implementa en la computadora VAX-11 y se denomina procedimiento. Ahora el usuario puede escribir opcionalmente subrutinas o procedimientos.
En una computadora VAX-11, el registro R12 se llama el puntero de argumento (UA) y se usa para pasar parámetros; El registro R13 se llama puntero de marco (CC) y se usa como registro base que apunta a la dirección base o de inicio del bloque de memoria de pila reservado exclusivamente para almacenar información clave del programa principal: PSL, contenido de registro de PC corregido, contenido de todos los registros generales, etc. Por lo tanto, el usuario siempre puede encontrar información refiriéndose al registro CM en lugar del puntero de la pila del sistema, ya que el contenido del registro SP generalmente cambia con el tiempo, mientras que el contenido del registro SP Istra Penal permanece fija.
En el sistema VAX-11, el usuario recibe dos conjuntos de pares de instrucciones para vincular el programa y el procedimiento principal: CALLG y RET; LLAMADAS y RET. La instrucción CALLG permite que el programa principal transfiera automáticamente al procedimiento la dirección de inicio de la matriz de datos con la que debe operar el procedimiento llamado. La instrucción CALLS requiere que el programa principal primero introduzca datos en la pila del sistema, después de lo cual el procedimiento puede trabajar con estos datos en la memoria de la pila. Interesante. https://es.fitmix.info - revista de fitness online.