Section courante

A propos

Section administrative du site

Assembleur 80x86

CMPSD

INTEL 80386+ Compare String Double Word

Syntaxe

CMPSD

Description

Cette instruction permet d'effectuer la comparaison d'un double mot avec l'opérande source (DS:SI, DS:ESI ou DS:RSI) et destination (ES:DI, ES:EDI ou ES:RDI) et fixe l'état des drapeaux du registres FLAGS ou EFLAGS ou RFLAGS en fonction des résultats de la comparaison.

Algorithme

MODULE CMPSD
   SI 64 bits ALORS
      Fixe l'état des drapeaux de registres RFLAGS avec ([RDI] = [RSI])
      SI DF = 0 ALORS
         RSI ← RSI + 4
         RDI ← RDI + 4
      SINON
         RSI ← RSI - 4
         RDI ← RDI - 4
      FIN SI
   SINON SI 32 bits ALORS
      Fixe l'état des drapeaux de registres EFLAGS avec ([EDI] = [ESI])
      SI DF = 0 ALORS
         ESI ← ESI + 4
         EDI ← EDI + 4
      SINON
         ESI ← ESI - 4
         EDI ← EDI - 4
      FIN SI
   SINON
      Fixe l'état des drapeaux de registres FLAGS avec ([DI] = [SI])
      SI DF = 0 ALORS
         SI ← SI + 4
         DI ← DI + 4
      SINON
         SI ← SI - 4
         DI ← DI - 4
      FIN SI
   FIN SI

Mnémonique

Instruction Opcode Description
CMPSD A7h Compare le double mot à l'adresse DS:(R)SI avec le double mot à 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é

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 809
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 : Samedi, le 2 août 2014