summaryrefslogtreecommitdiff
path: root/samples/recherche.s
blob: ebadde179007e8f8a643757ed10bedbd194f6d23 (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	"efghijklynoparstuvzxywqbcdefghijklynoparstuvzxywqbcdefghijklynoparstuvzxywqbcdefghXjklynoparstuvzxyw" 
TAB2 DS "aafghijklynoparstuvzxywqbcdefghijklynoparstuvzxywqbcdefghijklynoparstuvzxywqbcdefgXijklynoparstuvzxy"
MSGTROUVE DS "TAB1 et TAB2 ont un élément en commun à l'index "
MSGPASTROUVE DS "TAB1 et TAB2 n'ont pas d'élément en commun\n"
ENDLINE DS "\n"

.TEXT
.START
	MOV R4, TAB2				; R4 est la taille max
	SUB R4, TAB1
	MOV R5, R0				; R5 est le compteur
BOUCLE: MOV R6, TAB1[R5]			; on charge les lettres
	MOV R7, TAB2[R5]			;
	JE  R6 R7 TROUVE			; test si TAB1[i]=TAB2[i] =>jmp trouvé
	ADD R5, 1				; incrémentation du compteur
	JNE R5 R4 BOUCLE			; si compteur !=taille max on refait la boucle
	MOV, [0xffffff04], MSGPASTROUVE		; il n'y a pas de d'éléments identiques a une position i.
 	JMP FIN 				; jmp a l'affichage
TROUVE: MOV, [0xffffff04], MSGTROUVE		; il y a une paire d'éléments identiques.
	MOV, [0xffffff06], R5
	MOV, [0xffffff04], ENDLINE
FIN: HALT