| 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.