summaryrefslogtreecommitdiff
path: root/samples/sommeentiers.s
diff options
context:
space:
mode:
authorPixel <>2001-04-17 00:42:20 +0000
committerPixel <>2001-04-17 00:42:20 +0000
commitd3050fa05ca0bc9231eca96bcbf62d1ec60c9f90 (patch)
tree9ea393da66cf3d9809afb80af44f755fb36d46c3 /samples/sommeentiers.s
parentb77b22b3bd99c03b032cbd47465b1cbe34821120 (diff)
OUAAAAAAAAAAAAAAAAA
Diffstat (limited to 'samples/sommeentiers.s')
-rw-r--r--samples/sommeentiers.s31
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 ;