blob: a99e35392c462b2eb01362fa85366c6ff252ccac (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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
|