5.7 Subrutinas
El procesador también implementa subrutinas. Estas son pequeños fragmentos de código que pueden ser llamados desde cualquier parte del programa. Para ello, se utiliza la instrucción CALL
. Esta instrucción almacena el IP
en la pila, y luego realiza un salto a la dirección de la subrutina, modificando el IP
para que este apunte a la primera instrucción de la subrutina. Para volver de la subrutina, se utiliza la instrucción RET
, que desapila la dirección apilada previamente por CALL
y restaura el IP
, volviendo a el punto de ejecución posterior a la llamada a la subrutina.
Ejemplo de subrutina:
mov al, 1
mov bl, 2
mov cl, 3
call sum3
; ax = 6
hlt
; suma al, bl y cl
sum3: add al, bl
add al, cl
ret