1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
;Recherche du caractere 0x0D dans une chaine de caracteres
.DATA
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, 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
|