publicMasters/1-ComputationAndData/MVaP/ExoWhileViderPile.mvap

39 lines
797 B
Plaintext

# mon compteur de passages dans la boucle while (donc de valeurs empilees)
PUSHI 0
# Boucle While
LABEL 19
# le test qui va laisser une valeur 0 ou 1 en haut de la pile
READ # on demande à l'utilisateur
JUMPF 18 # saut conditionnel vers le label 1 si le test est Faux sinon continue
# quelque chose
READ
PUSHI 1
PUSHG 0
ADD
STOREG 0
# Fin du quelque chose
JUMP 19
LABEL 18
#
# La suite : il faut faire autant de pop que la valeur du compteur
# en gros while compteur > 0 : Pop; compteur --:
#
LABEL 0
# le test qui va laisser une valeur 0 ou 1 en haut de la pile
PUSHG 0
PUSHI 0
SUP
JUMPF 1 # saut conditionnel vers le label 1 si le test est Faux sinon continue
POP
# decrementer le compter
PUSHG 0
PUSHI 1
SUB
STOREG 0
JUMP 0
LABEL 1
#La suite
POP # pour la variable
# Fin de la suite.
HALT