From fb166efe352475602c0c188357424cc3d98dacc0 Mon Sep 17 00:00:00 2001 From: Florent Madelaine Date: Mon, 29 Jan 2024 12:42:07 +0100 Subject: [PATCH] plus exemples exo MVsP --- MVaP/ExampleTest.mvap | 13 +++++++++++++ MVaP/ExoWhileViderPile.mvap | 39 +++++++++++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 MVaP/ExampleTest.mvap create mode 100644 MVaP/ExoWhileViderPile.mvap diff --git a/MVaP/ExampleTest.mvap b/MVaP/ExampleTest.mvap new file mode 100644 index 0000000..a3e4a6d --- /dev/null +++ b/MVaP/ExampleTest.mvap @@ -0,0 +1,13 @@ +# 11 - 1? +PUSHI 11 +PUSHI 1 +SUB +# 11 / 2? +PUSHI 11 +PUSHI 2 +DIV +# tester 3 < 5 +PUSHI 3 +PUSHI 5 +INF +HALT diff --git a/MVaP/ExoWhileViderPile.mvap b/MVaP/ExoWhileViderPile.mvap new file mode 100644 index 0000000..7c8372a --- /dev/null +++ b/MVaP/ExoWhileViderPile.mvap @@ -0,0 +1,39 @@ +# 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 \ No newline at end of file