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
|