Chapitre 6 - les instructions de chaînes de caractères
1. Les instructions de chaînes
de caractères – Module
Microprocesseur
TARIK ZAKARIA BENMERAR, PHD
DEPARTEMENT INSTRUMENTATION ET AUTOMATIQUE, USTHB
2. Définition
Dans l’architecture X86, certaines instruction permettent un
transfert ou une comparaison rapide de chaines de caractères.
La première est appelée : " chaîne source " et la seconde "
chaîne destination ".
La chaîne source est toujours être pointée par le registre de
segment DS.
La chaîne destination est toujours être pointée par le registre
de segment ES.
3. Direction des adresses dans les
instructions des chaînes de caractères
La direction des adresses pour les instructions des
chaînes de caractères dépends du flag D (DF).
L’instruction CLD met DF à 0. Les adresses sont
incrémentées après chaque instruction des chaînes de
caractères.
L’instruction STD met DF à 1. Les adresses sont
décrémentées après chaque instruction des chaînes de
caractères.
4. Les instructions de transfert
LODSB/LODSW
LODSB
LODSW
AL ← [DS : SI], SI = SI ± 1
AX ← [DS : SI], SI = SI ± 2
5. Les instructions de transfert
LODSB/LODSW
ORG 100h
LEA SI, a1
MOV BL, 0
MOV CX, 3
m:
LODSB
ADD BL, AL
LOOP m
RET
a1 DB 1, 2, 3
6. Les instructions de comparaison
STOSB/STOSW
STOSB
STOSW
[ES : DI] ← AL, DI = DI ± 1
[ES : DI] ← AX, DI = DI ± 2
7. Les instructions de transfert
MOVSB/MOVSW
MOVSB
MOVSW
[ES : DI] ← [DS : SI], SI = SI ± 1, DI = DI ± 1
[ES : DI] ← [DS : SI], SI = SI ± 2, DI = DI ± 2
8. Les instructions de transfert
MOVSB/MOVSW
LEA si ,a1
LEA di, a2
MOVSB
MOVSB
MOVSB
RET
a1 DB 1,2,3
a2 DB 3 dup (0)
11. Les instructions de répétition
Répète l'instruction présente comme opérande.
Utilise CX comme compteur. E.g. REP MOVSB.
REP
12. Les instructions de répétition
REPE
Répète l'instruction présente comme opérande.
Utilise CX comme compteur, et la répétition s’arrête
si [DS : SI] ≠ [ES : DI]. E.g. REPE MOVSB.
13. Les instructions de répétition
REPNE
Répète l'instruction présente comme opérande.
Utilise CX comme compteur, et la répétition s’arrête
si [DS : SI] = [ES : DI]. E.g. REPNE MOVSB.