diff options
Diffstat (limited to 'samples/sommeentiers.s')
-rw-r--r-- | samples/sommeentiers.s | 31 |
1 files changed, 13 insertions, 18 deletions
diff --git a/samples/sommeentiers.s b/samples/sommeentiers.s index e8b6926..0580e77 100644 --- a/samples/sommeentiers.s +++ b/samples/sommeentiers.s @@ -1,28 +1,23 @@ ;Ce programme va calculer la somme des 97 premiers entiers .DATA MSG DS "La somme des " -MSG2 DS " premiers entiers est égale à" -N DB 97 -ZERO DB 0 -SOMME DB 4 +MSG2 DS " premiers entiers est égale à " +N DD 97 +MSG3 DS "\n" .TEXT .START - MOV R5,[N] ;init du compteur - MOV R1,0 ;init de R1 - MOV R2,0 ;init de R2 - + MOV R6,[N] ;init du compteur, R6 sera la taille totale + MOV R5,R0 ; R5 sera notre compteur + MOV R1,R0 ;init de R1, qui sera la somme totale + BOUCLE: ADD R1,R1,R5 ; R1=R1+R5 - AND R3,Fl,0x00000001 ; - ADD R2,R2,R3 ; R2=R2+CF - SUB R5,R5,1 ; DEC R5 - MOV R6,ZERO ; - JNE R5,R6,BOUCLE ; si R5!=0 on refait la boucle - MOV, [SOMME], R1 ; ; - MOV, [SOMME+2], R2 ;on place la valeur de la somme - MOV, [0xffffff04], MSG ;on affiche le msg et la somme - MOV, [0xffffff06], SOMME ; - MOV, [0xffffff06], SOMME+2 ; + ADD R5,R5,1 ; DEC R5 + JNE R5,R6,BOUCLE ; si R5!=R6 (=N) on refait la boucle + MOV, [0xffffff04], MSG ; on affiche le msg et la somme + MOV, [0xffffff06], R6 ; MOV, [0xffffff04], MSG2 ; + MOV, [0xffffff06], R1 ; + MOV, [0xffffff04], MSG3 ; HALT ; |