Preface
Manual de referencia del juego de instrucciones
La ilustración siguiente muestra cómo se pueden anidar las subrutinas.
Programa
principal
6
JSR
Ocurrirá un error si se llaman más niveles de subrutinas que los permitidos
(overflow de pila de subrutina) o si se ejecutan más retornos que niveles de llamada
existentes (underflow de pila de subrutina).
Uso de JSR
Cuando la instrucción JSR se ejecuta, el controlador salta a la instrucción de
subrutina (SBR) al inicio del archivo de subrutina destino y reanuda la ejecución
desde aquel punto. No puede saltar en una parte de una subrutina con excepción de
la primera instrucción en ese archivo.
Debe programar cada subrutina en su propio archivo de programa asignando un
número de archivo único:
Fijo y específico del SLC 5/01 – La instrucción JSR no se debe programar en
bifurcaciones de salida anidadas. Un error de compilador se ocurrirá si se encuentra
un renglón que contenga salidas múltiples con lógica condicional y una instrucción
JSR.
5–6
Con los procesadores SLC 5/02, SLC 5/03, SLC 5/04 y controladores
MicroLogix 1000, puede anidar subrutinas hasta ocho niveles. Si usa una
subrutina STI, subrutina de interrupción provocada por evento de E/S, una
rutina de fallo del usuario o una subrutina de interrupción HSC, puede anidar
subrutinas hasta tres niveles desde cada subrutina.
Nivel 1
Archivo de subrutina 6
SBR
7
JSR
RET
Ejemplo de cómo anidar subrutinas hasta el nivel 3
3–255 para los procesadores SLC
4–15 para los controladores MicroLogix 1000
Nivel 2
Archivo de subrutina 7
SBR
8
JSR
RET
Nivel 3
Archivo de subrutina 8
SBR
RET