correction exo mvap examen 24-25

This commit is contained in:
2025-12-15 15:09:42 +01:00
parent ecaef95d1e
commit b6454fe403

View File

@@ -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