diff options
author | biouman <> | 2001-04-16 01:14:59 +0000 |
---|---|---|
committer | biouman <> | 2001-04-16 01:14:59 +0000 |
commit | 9a50f1e65b9489a1421d9c169fa9b1f9168e41bd (patch) | |
tree | b43907f99074634eeaeca5a0838bdcfcb1b78a60 /samples/recherche.asm | |
parent | c9ad75bd7d192a3c21402de7d0de3bfb907ed842 (diff) |
*** empty log message ***
Diffstat (limited to 'samples/recherche.asm')
-rw-r--r-- | samples/recherche.asm | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/samples/recherche.asm b/samples/recherche.asm new file mode 100644 index 0000000..a99e353 --- /dev/null +++ b/samples/recherche.asm @@ -0,0 +1,24 @@ +.DATA +TAB1 DS "efghijklynoparstuvzxywqbcdefghijklynoparstuvzxywqbcdefghijklynoparstuvzxywqbcdefghijklynoparstuvzxyw" +TAB2 DS "aafghijklynoparstuvzxywqbcdefghijklynoparstuvzxywqbcdefghijklynoparstuvzxywqbcdefghijklynoparstuvzxy" +MSGTROUVE DS "TAB1 et TAB2 ont un élément en commun" +MSGPASTROUVE DS "TAB1 et TAB2 n'ont pas d'élément en commun" +ZERO DB 0 + +.TEXT +.START + MOV R5, 101 ;R5 est le compteur + MOV R1, TAB1 ;TAB1 est un tableau de 100 octets de type char + MOV R2, TAB2 ;TAB2 est un tableau de 100 octets de type char +BOUCLE: SUB R5 R5 1 + MOV R6, [R1] + MOV R7, [R2] ;decrementation du compteur + JE R6 R7 TROUVE ;test si TAB1[i]=TAB2[i] =>jmp trouvé + ADD R1 R1 1 ;incrementation de R1 (element suivant du tableau TAB1) + ADD R2 R1 1 + MOV R8, ZERO ;incrementation de R2 (element suivant du tableau TAB2) + JNE R5 R8 BOUCLE ;si compteur !=0 on refait la boucle + MOV, [0xffffff04], MSGPASTROUVE ;il n'y a pas de d'éléments identiques a une position i => on place dans R3 le msg a afficher + JMP FIN ;jmp a l'affichage +TROUVE: MOV, [0xffffff04], MSGTROUVE ;il y a une paire d'éléments identiques => on place dans R3 le msg a afficher +FIN: HALT
\ No newline at end of file |