summaryrefslogtreecommitdiff
path: root/samples/rechcara.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/rechcara.s
parentb77b22b3bd99c03b032cbd47465b1cbe34821120 (diff)
OUAAAAAAAAAAAAAAAAA
Diffstat (limited to 'samples/rechcara.s')
-rw-r--r--samples/rechcara.s35
1 files changed, 17 insertions, 18 deletions
diff --git a/samples/rechcara.s b/samples/rechcara.s
index c4747c3..4eeeef8 100644
--- a/samples/rechcara.s
+++ b/samples/rechcara.s
@@ -1,26 +1,25 @@
-;Recherche du caractere 0DH dans une chaine de caracteres
+;Recherche du caractere 0x0D dans une chaine de caracteres
.DATA
-CHAINE DS "ceci est un test de chaine de caractere de quatre vingt caracteres akdijhgffddss"
-MSGPASTROUVE DS "Le caractere 0DH n'a pas été trouvé dans la chaine"
-MSGTROUVE DS "Le caractere 0DH a été trouvé dans la chaine"
-ZERO DB 0
+CHAINE DS "ceci est un test de chaine\r de caractere quelconque..."
+MSGPASTROUVE DS "Le caractere 0x0D n'a pas été trouvé dans la chaine\n"
+MSGTROUVE DS "Le caractere 0x0D a été trouvé dans la chaine à l'index "
+MSGENDL DS "\n"
.TEXT
.START
- MOV R1,ZERO;
- MOV R3,80;
- MOV R2,0x0D;
- MOV R5,ZERO;
-BOUCLE: MOV R4,CHAINE[R1];
- JE R4,R2,TROUVE;
- ADD R1,R1,1;
- SUB R3,R3,1;
- JNE R3 R5 BOUCLE;
- MOV, [0xffffff04],MSGPASTROUVE;
- JMP FIN;
-TROUVE: MOV, [0xffffff04],MSGTROUVE;
+ MOV R1, R0 ; R1 est le compteur
+ MOV R2, 0x0D ; R2 est l'élement recherché
+
+BOUCLE: MOV R4,CHAINE[R1] ; On lit un caractère.
+ JE R4, R2, TROUVE
+ ADD R1, 1 ; On incrément le pointeur
+ JNE R4, R0, BOUCLE ; C'était le caractère 0? On sort
+ MOV, [0xffffff04], MSGPASTROUVE;
+ JMP FIN
+TROUVE: MOV, [0xffffff04], MSGTROUVE;
+ MOV, [0xffffff06], R1
+ MOV, [0xffffff04], MSGENDL
FIN: HALT
- \ No newline at end of file