Les instructions amil
mnémoniquedetailaction
stop Arrête l’exécution du programme.
noop N’effectue aucune opération.
saut i Met le compteur ordinal à la valeur i. PC ← i
sautpos ri j Si la valeur contenue dans le registre i est positive ou nulle, met le compteur ordinal à la valeur j. si ri ≥ 0 PC ← j sinon PC ← PC+1
valeur x ri Initialise le registre i avec la valeur x. ri ← x
lecture i rj Charge, dans le registre j, le contenu de la mémoire d’adresse i. rj ← men(i)
lecture *ri rj Charge, dans le registre j, le contenu de la mémoire dont l’adresse est la valeur du registre i. rj ← men(ri)
ecriture ri j Écrit le contenu du registre i dans la mémoire d’adresse j. ri → men(j)
ecriture ri *rj Écrit le contenu du registre i dans la mémoire dont l’adresse est la valeur du registre j. ri → men(rj)
inverse ri Inverse le signe du contenu du registre i. ri ← − ri
add ri rj Ajoute la valeur du registre i à celle du registre j. rj ← ri + rj
soustr ri rj Soustrait la valeur du registre i à celle du registre j. rj ← rj − ri
mult, div, et Même syntaxe que pour add et soustr mais pour la multiplication, la division entière et le et bit à bit. rj ← rj (*, /, and) ri
Les instructions ajoutées à amil
mnémoniquedetailactions
ecriture ri rj Écrit le contenu du registre i dans le registre j. rj ← ri
sautnul ri j Si la valeur contenue dans le registre i est nulle, met le compteur ordinal à la valeur j. si ri = 0 PC ← j sinon PC ← PC+1
sautnonnul ri j Si la valeur contenue dans le registre i est non nulle, met le compteur ordinal à la valeur j. si ri ≠ 0 PC ← j sinon PC ← PC+1
add x ri Ajoute x à celle du registre i. ri ← ri + x
mult, div,soustr Même syntaxe que pour add mais pour la multiplication, la division entière et la soustraction. rj ← rj (*, /, −) x
appel i Appel de sous-programme à l'adresse i (PC+1) → mem(r7), PC ← i, r7 ← r7 − 1
retour retour de procédure à l'appelant. PC ← mem(r7) , r7 ← r7 + 1
empiler ri Place la valeur contenue dans le registre i en haut de la pile (la même pile que pour les adresses). ri → mem(r7) , r7 ← r7 − 1
depiler rj Place la valeur en haut de la pile (la même pile que pour les adresses) dans le registre rj. rj ← mem(r7) , r7 ← r7 + 1
vers le site de l'auteur
telecharger cette version