69 lines
1.1 KiB
Plaintext
69 lines
1.1 KiB
Plaintext
#### Exemple vu en cours le 6/10/2025 (calcul de moyenne de F et X,
|
||
### Max (1/3F+2/3 X; X)
|
||
|
||
|
||
PUSHI 0 # F habite à l'adresse 0
|
||
PUSHI 0 # X habite à l'adresse 1
|
||
|
||
|
||
PUSHI 0 # R1 habite à l'adresse 2
|
||
PUSHI 0 # R2 habite à l'adresse 3
|
||
PUSHI 0 # R3 habite à l'adresse 4
|
||
|
||
READ
|
||
STOREG 0
|
||
|
||
READ
|
||
STOREG 1
|
||
|
||
# PUSHG adr # valeur sur la pile
|
||
# STOREG adr # MàJ de la variable
|
||
#
|
||
#
|
||
# Je calcule F/3 et je le stocke dans R1
|
||
PUSHG 0 # récupère valeur de F
|
||
PUSHI 3
|
||
DIV
|
||
STOREG 2
|
||
# Je calcule X*2/3 et je stocke dans R2
|
||
PUSHG 1 # récupère la valeur de X
|
||
PUSHI 2
|
||
MUL
|
||
PUSHI 3
|
||
DIV
|
||
STOREG 3
|
||
# Je fais la somme des deux et je l'écris dans R3
|
||
PUSHG 2 # valeur de R1
|
||
PUSHG 3 # valeur de R2
|
||
ADD
|
||
STOREG 4 # affectation de R3
|
||
|
||
|
||
|
||
### du code avec branchement ici : Max de X et R3.
|
||
|
||
# Je veux récupérer R3 et X
|
||
PUSHG 1 # X
|
||
PUSHG 4 # R3
|
||
SUP
|
||
JUMPF 0 # si faux il faut écrire R3
|
||
# si plus petit (test vrai pas de saut), je veux écrire X
|
||
PUSHG 1 # X
|
||
JUMP 1
|
||
|
||
# sinon je veux écrire R3
|
||
LABEL 0 # le cas
|
||
PUSHG 4 # R3
|
||
JUMP 1
|
||
# Je veux écrire la bonne valeur
|
||
LABEL 1 # la partie du code qui écrit (la suite)
|
||
WRITE
|
||
POP
|
||
# vider la mémoire
|
||
POP
|
||
POP
|
||
POP
|
||
POP
|
||
POP
|
||
HALT
|