Les appels de procédures et gestion de la pile
Les opérations de sauts conditionnels et inconditionnels

Stockage en pile

L'opération PUSH permet de copier un registre dans la pile et d'incrémenter le pointeur de pile.

N'Impacte aucun flag.

En résumé :

Usage : PUSH Rnn
Exemple : PUSH R31
Résultat : [R01] <= (R31) puis (R01) <= (R01) + 4

Lecture de la pile

L'opération POP permet le sommet de la pile dans un registre après avoir décrémenter le pointeur de pile.

N'Impacte aucun flag.

En résumé :

Usage : POP Rdd
Exemple : POP R31
Résultat : (R01) <= (R01) - 4 puis R31 <= [R01]

Appel d'une procédure absolue

L'opération CALL permet l'appel d'une procédure par son adresse absolue. Lors de cet appel, l'adresse courante du compteur ordinal (PC) est mémorisée en pile.

N'Impacte aucun flag.

En résumé :

Usage : CALL AdresseProcédure
Exemple : CALL MyProc
Résultat : [R01] <= (R00) puis (R01) <= (R01) + 4 et (R00) <= AdresseProcédure.

Appel d'une procédure par registre

L'opération CALLr permet l'appel d'une procédure au travers d'un registre. Lors de cet appel, l'adresse courante du compteur ordinal (PC)(R00) est mémorisée en pile.

N'Impacte aucun flag.

En résumé :

Usage : CALLr Rmm
Exemple : CALL R31
Résultat : [R01] <= (R00) puis (R01) <= (R01) + 4 et (R00) <= (R31)

Retour d'une procédure

L'instruction RET permet le retour d'une procédure : le compteur ordinal (PC) prend la valeur du sommet de la pile ; en réalité, cette instruction n'existe pas : il s'agit d'un alias sur POP R00.

N'Impacte aucun flag.

En résumé :

Usage : RET
Exemple : RET
Résultat : (R01) <= (R01) - 4 puis (R00) <= [R01]
NOP, Encodage des instructions
Simple-Cpu The Simple CPU project The Simple CPU project
Un projet de disk91
Small CPU project