Mnémonique | Mnémonique francisé | Explication | Algorithme |
---|---|---|---|
WR x ri | écrit x ri | Initialise le registre i avec la valeur x. | ri ← x |
MOV i rj | copie i rj | Charge dans le registre j, le contenu de la mémoire d'adresse i. | rj ← mem(i) |
MOV ri j | copie ri j | Écrit le contenu du registre i dans la mémoire d’adresse j. | mem(j) ← ri |
NEG ri | neg ri | Calcule la négation du contenu du registre i. | ri ← − ri |
ADD ri rj | add ri rj | Ajoute la valeur du registre i à celle du registre j. | rj ← ri + rj |
SUB ri rj | soust ri rj | Soustrait la valeur du registre i à celle du registre j. | rj ← rj − ri |
MUL, DIV | mult, div | Même syntaxe que pour add et soust mais pour la multiplication et la division | rj ← rj * ri ou rj ← rj / ri |
INC ri | inc ri | Incrémente d'un la valeur du registre i. | ri ← ri + 1 |
JMP i | saut i | Met le compteur à la valeur i. La prochaine instruction exécuté sera celle inscrite à l'emplacement i de la mémoire. | CP ← i |
JP ri j | sautpos ri j | Si la valeur contenue dans le registre i est positive ou nulle, met le compteur à la valeur j. | si ri ≥ 0 : CP ← j sinon CP ← CP+1 |
STOP | stop | Arrête l'exécution du programme. |
Mnémonique | Mnémonique francisé | Explication | Algorithme |
---|---|---|---|
MOV ri rj | copie ri rj | Écrit le contenu du registre i dans le registre j. | rj ← ri |
MOV ri *rj | copie ri *rj | Écrit le contenu du registre i dans la mémoire dont l’adresse est la valeur du registre j. | mem(rj) ← ri |
MOV *ri rj | copie *ri rj | Charge dans le registre j, le contenu de la mémoire dont l’adresse est la valeur du registre i. | rj ← mem(ri) |
QDV ri rj | quotient ri rj | Quotient de la division de la valeur du registre j par celle du registre i. (division entière) | rj ← rj // ri |
MOD ri rj | mod ri rj | Reste de la division de la valeur du registre j par celle du registre i. (division entière) | rj ← rj % ri |
ADD x ri | add x ri | Ajoute x à celle du registre i. | ri ← ri + x |
MUL, DIV, SUB, QDV, MOD | mult, div, soust, quotient, mod | Même syntaxe que pour add mais pour la multiplication, la division, la soustraction, la division entière et le modulo. | rj ← rj (*, /, −, //, %) x |
JZ ri j | sautnul ri j | Si la valeur contenue dans le registre i est nulle, met le compteur à la valeur j. | si ri = 0 : CP ← j sinon CP ← CP+1 |
JNZ ri j | sautnonnul ri j | Si la valeur contenue dans le registre i est non nulle, met le compteur à la valeur j. | si ri ≠ 0 CP ← j sinon CP ← CP+1 |
CALL i | appel i | Appel de sous-programme à l'adresse i | pile(r7) ← CP + 1 CP ← i r7 ← r7 − 1 |
RET | retour | Retour de procédure à l'appelant. | CP ← pile(r7) r7 ← r7 + 1 |
PUSH ri | empiler ri | Place la valeur contenue dans le registre i en haut de la pile (la même pile que pour les adresses). | pile(r7) ← ri r7 ← r7 − 1 |
POP rj | depiler rj | Place la valeur en haut de la pile (la même pile que pour les adresses) dans le registre rj. | rj ← pile(r7) r7 ← r7 + 1 |
DEC ri | inc ri | Décrémente d'un la valeur du registre i. | ri ← ri - 1 |
NOOP | rien | N’effectue aucune opération (no operation). |