diff --git a/1-ComputationAndData/MVaP/ExamenMVAP24-25.mvap b/1-ComputationAndData/MVaP/ExamenMVAP24-25.mvap new file mode 100644 index 0000000..e1bf2ef --- /dev/null +++ b/1-ComputationAndData/MVaP/ExamenMVAP24-25.mvap @@ -0,0 +1,66 @@ +### On réserve de la mémoire. +PUSHI 0 # R1 adresse 0 +PUSHI 0 # R2 adresse 1 +PUSHI 0 # N adresse 2 +PUSHI 0 # nbrePart adresse 3 +PUSHI 0 # Q Quotient f adresse 4. + +### On initialise les variables +### Ici soit en demandant à l'utilisateur avec READ +### soit pour tester sans avoir à faire des entrées avec +### des PUSHI à la place de read +PUSHI 100 +#READ # lit une valeur, stocke sur la pile +STOREG 0 # sauve cette valeur à l'adresse 0 +PUSHI 200 +#READ +STOREG 1 +PUSHI 4 +# READ +STOREG 2 + +### On traverse l'arbre, toujours dans l'ordre +### gauche, droite, haut. +### on écrit les instructions correspondantes. +### PUSHI pour les constantes dans les feuilles de l'arbre +### PUSHG pour les variables dans les feuilles de l'arbre +### ADD, SUB, MUL, DIV pour les opérations (noeuds internes de l'arbre) + +PUSHG 0 # valeur de R1 +PUSHG 1 # valeur de R2 +ADD # J'ai fini R1+R2 + +PUSHI 2 # la constante 2 + +PUSHI 1 # la constante 1 + +PUSHG 2 # valeur de N +PUSHI 2 # la constante 2 +SUB # J'ai fini N-2 + +ADD # fini 1+(N-2) + +ADD # fini 2+(1+(N-2)) +STOREG 3 # memoriser nbrepart +PUSHG 3 + +DIV # fin du calcul +STOREG 4 # mémoriser quotient familial + +### On récupère les valeurs qu'on veut afficher + +PUSHG 3 +WRITE +POP # WRITE ne consomme pas la valeur, il faut l'enlever + +PUSHG 4 +WRITE +POP + +### On vide la mémoire (autant de pop que de variables) +POP +POP +POP +POP +POP +HALT