diff options
author | Pixel <> | 2001-04-17 00:42:20 +0000 |
---|---|---|
committer | Pixel <> | 2001-04-17 00:42:20 +0000 |
commit | d3050fa05ca0bc9231eca96bcbf62d1ec60c9f90 (patch) | |
tree | 9ea393da66cf3d9809afb80af44f755fb36d46c3 /samples/rechcara.s | |
parent | b77b22b3bd99c03b032cbd47465b1cbe34821120 (diff) |
OUAAAAAAAAAAAAAAAAA
Diffstat (limited to 'samples/rechcara.s')
-rw-r--r-- | samples/rechcara.s | 35 |
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 |