From 460b23f88e28a65ec41aa40bc77a43f8d6f8a61a Mon Sep 17 00:00:00 2001 From: Florent Madelaine Date: Mon, 18 Dec 2023 11:16:59 +0100 Subject: [PATCH] =?UTF-8?q?ordre=20op=C3=A9rations=20et=20nouvel=20exercic?= =?UTF-8?q?e=20vider=20la=20m=C3=A9moire?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 5ComputationAndData.md | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/5ComputationAndData.md b/5ComputationAndData.md index 4a473ea..98ae489 100644 --- a/5ComputationAndData.md +++ b/5ComputationAndData.md @@ -110,6 +110,8 @@ PUSHL a # analogue de PUSHG pour des variables locales (utilise FP) STOREL a # analogue de STOREG ``` +L'ordre des opérations est naturel, si on voit la pile de côté, bas à gauche, haut à droite. Une opération qui mange deux arguments prendra l'avant dernier argument comme premier argument et le dernier comme second argument. + ### Un premier exemple ``` @@ -255,6 +257,31 @@ print(i) ``` Testez votre code avec la MVàP. + +### Exercice +Produire du code MVàP qui s'inspire du code suivant et simule la lecture et le stockage d'un tableau avant de vider la pile. +La version ci-dessous ne vide pas la pile. +``` +# Boucle While +LABEL 19 +# le test qui va laisser une valeur 0 ou 1 en haut de la pile +# PUSHI 0 # pour faux, donc je saute après +# PUSHI 1 # pour vrai, donc je ne saute pas. +READ # on demande à l'utilisateur +JUMPF 18 # saut conditionnel vers le label 1 si le test est Faux sinon continue +# quelque chose +READ +# Fin du quelque chose +JUMP 19 +LABEL 18 +#La suite +PUSHI 666 +WRITE +POP +# Fin de la suite. +HALT +``` + ### Exercice Produire du code MVàP qui correspond au code python suivant.