Branchements à des sous routines
Branchement inconditionnel à une sous-routine
Il s'agit de branchements inconditionnels mais avec retour à la ligne suivant la ligne qui a appelé la sous routine.
Deux commandes permettent de "sauter/d'aller" à la ligne n:
- La commande JSR permet un déplacement absolu
JSR [AE]
Dans ce cas, le registre pc reçoit l'adresse indiquée, SP reçoit l'adresse de retour, càd l'adresse de l'instruction suivante.
Etat du registre CCR :
X |
N |
Z |
V |
C |
- |
- |
- |
- |
- |
- BSR permet un déplacement relatif à la position courante
Dans ce cas, le registre pc reçoit pc + déplacement indiqué après le BSR, SP reçoit l'adresse de retour, càd l'adresse de l'instruction suivante.
BSR [étiquette]
Le code est relogeable
avec ce genre de commande !
Etat du registre CCR :
X |
N |
Z |
V |
C |
- |
- |
- |
- |
- |
Retour de sous routine
Pour revenir à la suite de la ligne ayant déclenchée la sous routine, il faudra utiliser l'instruction RTS (return subroutine). La pile SP sera alors corrigée automatiquement (SP)+, PC pointant sur la ligne suivante a exécuter.
Etat du registre CCR :
X |
N |
Z |
V |
C |
- |
- |
- |
- |
- |