Les instructions de chaînes
de caractères – Module
Microprocesseur
TARIK ZAKARIA BENMERAR, PHD
DEPARTEMENT INSTRUMENTATION ET AUTOMATIQUE, USTHB
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.
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.
Les instructions de transfert
LODSB/LODSW
LODSB
LODSW
AL ← [DS : SI], SI = SI ± 1
AX ← [DS : SI], SI = SI ± 2
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
Les instructions de comparaison
STOSB/STOSW
STOSB
STOSW
[ES : DI] ← AL, DI = DI ± 1
[ES : DI] ← AX, DI = DI ± 2
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
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)
Les comparaisons
CMPSB/CMPSW
CMPSB
CMPSW
Comparaison de [DS : SI] avec [ES : DI] ←, SI = SI ± 1, DI = DI ± 1
Comparaison de [DS : SI] avec [ES : DI] ←, SI = SI ± 2, DI = DI ± 2
Les comparaisons
SCASB/SCASW
SCASB
SCASW
Comparaison de AL avec [ES : DI] ←, SI = SI ± 1, DI = DI ± 1
Comparaison de AX avec [ES : DI] ←, SI = SI ± 2, DI = DI ± 2
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
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.
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.

Chapitre 6 - les instructions de chaînes de caractères

  • 1.
    Les instructions dechaînes de caractères – Module Microprocesseur TARIK ZAKARIA BENMERAR, PHD DEPARTEMENT INSTRUMENTATION ET AUTOMATIQUE, USTHB
  • 2.
    Définition  Dans l’architectureX86, 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 adressesdans 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 detransfert LODSB/LODSW LODSB LODSW AL ← [DS : SI], SI = SI ± 1 AX ← [DS : SI], SI = SI ± 2
  • 5.
    Les instructions detransfert 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 decomparaison STOSB/STOSW STOSB STOSW [ES : DI] ← AL, DI = DI ± 1 [ES : DI] ← AX, DI = DI ± 2
  • 7.
    Les instructions detransfert 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 detransfert MOVSB/MOVSW LEA si ,a1 LEA di, a2 MOVSB MOVSB MOVSB RET a1 DB 1,2,3 a2 DB 3 dup (0)
  • 9.
    Les comparaisons CMPSB/CMPSW CMPSB CMPSW Comparaison de[DS : SI] avec [ES : DI] ←, SI = SI ± 1, DI = DI ± 1 Comparaison de [DS : SI] avec [ES : DI] ←, SI = SI ± 2, DI = DI ± 2
  • 10.
    Les comparaisons SCASB/SCASW SCASB SCASW Comparaison deAL avec [ES : DI] ←, SI = SI ± 1, DI = DI ± 1 Comparaison de AX avec [ES : DI] ←, SI = SI ± 2, DI = DI ± 2
  • 11.
    Les instructions derépétition  Répète l'instruction présente comme opérande. Utilise CX comme compteur. E.g. REP MOVSB. REP
  • 12.
    Les instructions deré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 deré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.