From 58dbd2ed918bb9e6f93aed076f8f3de92d41d2f9 Mon Sep 17 00:00:00 2001 From: Pixel <> Date: Tue, 17 Apr 2001 02:20:40 +0000 Subject: Grou --- samples/testtout.s | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 samples/testtout.s (limited to 'samples/testtout.s') diff --git a/samples/testtout.s b/samples/testtout.s new file mode 100644 index 0000000..0c1350e --- /dev/null +++ b/samples/testtout.s @@ -0,0 +1,33 @@ +.data +PROG1 DS "sommeentiers" +PROG2 DS "rechcara" +PROG3 DS "recherche" + +MSG1 DS "Exécution du programme numéro " +MSG2 DS " appelé " +MSG3 DS "...\n" +MSGTERM DS "Le programme s'est terminé!\n" +MSGFIN DS "Tout est terminé, bye!\n" + +PROGS DD PROG1, PROG2, PROG3, 0 + +.text +.start + MOV R1, R0 ; R1 sera notre compteur de programme +BOUCLE: MOV R2, PROGS[R0] ; On lit l'adresse du nom du prochain programme + JE R2, R0, FIN ; Si c'est l'adresse nulle, on sort + MOV, [0xffffff04], MSG1 ; On affiche le premier morceau de la chaîne + MOV, [0xffffff06], R1 ; On affiche le numéro du programme + MOV, [0xffffff04], MSG2 ; On affiche le deuxième morceau de la chaîne + MOV, [0xffffff04], R2 ; On affiche le nom du programe + MOV, [0xffffff04], MSG3 ; On affiche la dernière chaîne + + PUSH R1 ; On sauvegarde R1 avant + MOV, [0xffffff0a], R1 ; On appelle le miniOS pour lui demander + ; de charger un autre programme. + POP R1 ; Et on récupère R1 + + MOV, [0xffffff04], MSGTERM ; On affiche la chaîne pour dire que l'on vient de sortir + JMP BOUCLE ; et on boucle +FIN: MOV, [0xffffff04], MSGFIN ; On affiche en dernier le message de fin. + HALT -- cgit v1.2.3