INP R0,2 // premier nombre en entrée (INPut) stocké dans le registre 0
INP R1,2 // deuxième nombre en entrée (INPut) stocké dans le registre 1
INP R2,2 // troisième nombre en entrée (INPut) stocké dans le registre 2
CMP R1,R0 // comparaison de la valeur dans R1 (opérande 1 : op1) et de la valeur dans R2 (opérande 2 : op2)
BGT HIGHER // branchement si op1 > op2 (GT : Greater Than) vers le sous programme d'étiquette HIGHER
CMP R2, R0 // comparaison de la valeur dans R2 (op1) et de la valeur dans R0 (op2)
BGT 2HIGER // branchement si op1 > op2 vers le sous programme d'étiquette 2HIGHER
OUT R0,4 // sortie à l'affichage de la valeur de R0
B DONE // fin
HIGHER: // étiquette HIGHER : destination du premier branchement de ce programme (BGT ci-dessus)
CMP R1, R2 // comparaison de la valeur dans R1 (op1) et de la valeur dans R2 (op2)
BGT 3HIGER // branchement si op1 > op2 vers le sous programme d'étiquette 3HIGHER
OUT R2,4 // sortie à l'affichage de la valeur de R2
B DONE // fin
2HIGER:
out R2, 4 // sortie à l'affichage de la valeur de R2
B DONE // fin
3HIGER:
out R1, 4 // sortie à l'affichage de la valeur de R1
B DONE // fin
DONE:
HALT
// Input three numbers and output the higher