- Pedro Alvarez a écrit:
- Je savais qu'effectivement, il était possible d'écrire plusieurs return dans une même sub.
La commande
RETURN ne peut se trouver que dans un sous-programme appelé par
GOSUB ou dans un sous-programme de traitement d’un événement déclenché par les commandes de type
ON_XXX.
Elle ne peut pas se trouver dans une procédure
SUB, à moins que cette procédure contient elle-même un sous-programme appelé par GOSUB.
Personnellement je ne vois pas la nécessité d’employer des sous-programmes appelés par GOSUB dés lors que l’on peut coder des procédures SUB.
L’unique rôle de la commande RETURN est de diriger le programme vers l’instruction qui vient juste après le GOSUB correspondant ou de remettre le programme en
attente d’événement s'il s'agit d'un traitement d'événement.
Lorsque le programme est en cours d’exécution, le registre PC (Program Counter) contient l’adresse mémoire de la prochaine instruction à exécuter
La rencontre de la commande GOSUB, oblige le système à
sauvegarder son environnement de travail en mettant sur la pile (PUSH) les contenus des registres de travail et principalement le registre Program Counter puis il modifie ce dernier pour se brancher vers le sous-programme.
Quand il rencontre la commande RETURN, le système restaure son ancien environnement de travail (POP) et principalement le registre Program Counter en récupérant l’adresse préalablement sauvegardée et continue l’exécution.