Section courante

A propos

Section administrative du site

Assembleur 80x86

CMPSB

INTEL 8086+, x86-64 Compare String Byte

Syntaxe

CMPSB

Description

Cette instruction permet d'effectuer la comparaison d'un octet avec l'opérande source (DS:(R)SI) et destination (ES:(R)DI) et fixe l'état des drapeaux du registres EFLAGS en fonction des résultats de la comparaison.

Algorithme

MODULE CMPSB
   Fixe les drapeaux d'états de ([(E)DI] = [(E)SI])
   SI DF = 0 ALORS
      (E)SI ← (E)SI + 1
      (E)DI ← (E)DI + 1
   SINON
      (E)SI ← (E)SI - 1
      (E)DI ← (E)DI - 1
   FIN SI

Mnémonique

Instruction Opcode Description
CMPSB A6h Compare l'octet à l'adresse DS:(R)SI avec l'octet à l'adresses ES:(R)DI et incrémente ou décrémente les registres (R)SI et (R)DI

Exceptions

Message Mode réel Virtuel 8086 Mode protégé Description
#SS(Pile) X X X Une adresse mémoire dépasse la limite du segment de pile ou n'est pas canonique
#GP(Protection général) X X X Une adresse mémoire dépasse la limite du segment de données ou n'est pas canonique
    X Un segment de données nulle est utilisé comme référence mémoire
#PF(Faute de page)   X X Une faute de page résultat de l'exécution de l'instruction
#AC(Vérifie l'alignement)   X X Un désalignement de la référence mémoire est effectué quand une vérification d'alignement est activé

Exemple

L'exemple suivant permet de comparer deux chaînes de caractères en mode réel en utilisant l'instruction CMPSB :

  1. LoadAddress:
  2. LDS SI,String1
  3. LES DI,String2
  4. SizeLength:
  5. MOVZX CX,AL
  6. CLD
  7. REPE CMPSB

Voir également

Instruction assembleur 80x86 - Instruction CMP
Instruction assembleur 80x86 - Instruction SCAS

Références

Le livre d'Or PC, Martin Althaus, 1992, ISBN: 2-7361-0934-1, page 808
Assembleur Facile, Philippe Mercier, 1990, ISBN: 2-501-01176-7, page 403
AMD64 Architecture Programmer's Manual Volume 3: General-Purpose and System Instructions, Edition Advanced Micro Devices, Revision 3.14, September 2007, Publication No. 24594, page 97.
Intel® 64 and IA-32 Architectures Software Developer’s Manual Volume 2A: Instruction Set Reference, A-M, Edition Intel, Mars 2010, Publication No. 253666-034US, page 219 à 224.

Dernière mise à jour : Lundi, le 1 septembre 2014