Met dans l’adresse @Y le résultat de l’addition des valeurs contenues aux adresses @A et @B
Idem ADD mais Soustraction
Idem ADD mais multiplication
Idem ADD mais division
Copie le contenu de l’adresse @Y à l’adresse @X
Copie la valeur val à l’adresse @X
Copie la valeur contenue dans @C à l’adresse @X en considérant que ce qui est copié est une adresse (et donc il faut ajouter BP)
Copie la val à l’adresse @X en considérant que ce qui est copié est une adresse (et donc il faut ajouter BP)
Saute vers la ligne ins dans le code sans condition
Saute vers la ligne ins dans le code si la valeur à l’adresse @X est 0
Met à l’adresse @X 1 si val en @A plus petite que en @B et 0 sinon
Met à l’adresse @X 1 si val en @A plus grande que en @B et 0 sinon
Met à l’adresse @X 1 si val en @A égale à celle en @B et 0 sinon
Va mettre à l’adresse @X ce qui est à l’addresse contenue à l’adresse @Y (on considère que ce qui est dans @Y est un adresse et on va voir à cette adresse). Attention, considérer des addresses globales (pas relatives).
Va mettre le contenu de @Y dans l’adresse qui est la valeur dans @X (on considère que @X est un pointeur et on écrit dans l’adresse qui est contenue dans @X). Attention, considérer des addresses globales (pas relatives).
Appelle la fonction dont la première ligne est ins et taille_pile_fonction_appelante est la taille de la zone mémoire utilisée par la fonction appelante (avant le push des arguments !)
Restore BP et saute à l’adresse de retour (selon les valeur qui sont dans la pile de contrôle).
Arrete le processeur si val vaut 0 (à mettre à la fin de l’ASM), ou, arrete le processeur pour val tick d’horloge (si val > 0)