Section courante

A propos

Section administrative du site

Assembleur 80x86

SCAS

INTEL 8088+ Scan String

Syntaxe

SCAS chainecible

Description

Cette instruction permet de comparer un octet, un mot ou un double mot avec la cellule mémoire à l'adresse ES:[DI] et incrémente/décrémente le registre DI en fonction de la taille de l'opérande cible et de l'état du drapeau de direction.

Algorithme

SI chainecible est un octet ALORS
   temp ← AL - chainecible
   SetStatusFlags(temp)
   SI DF = 0 ALORS
      (E)DI ← (E)DI + 1
   SINON
      (E)DI ← (E)DI - 1
   FIN SI
SINON SI chainecible est un mot ALORS
   temp ← AX - chainecible
   SetStatusFlags(temp)
   SI DF = 0 ALORS
      (E)DI ← (E)DI + 2
   SINON
      (E)DI ← (E)DI - 2
   FIN SI
SINON SI chainecible est un double mot ALORS
   temp ← EAX - chainecible
   SetStatusFlags(temp)
   SI DF = 0 ALORS
      (E)DI ← (E)DI + 4
   SINON
      (E)DI ← (E)DI - 4
   FIN SI
SINON
   temp ← EAX - chainecible
   SetStatusFlags(temp)
   SI DF = 0 ALORS
      (E)DI ← (E)DI + 8
   SINON
      (E)DI ← (E)DI - 8
   FIN SI
FIN SI

Mnémonique

Instruction Opcode Description
SCAS mem8 AEh Compare le contenu d'un registre AL avec l'octet ES:(R)DI et incrémente ou décrémente R(DI).
SCAS mem16 AFh Compare le contenu d'un registre AX avec le mot ES:(R)DI et incrémente ou décrémente R(DI).
SCAS mem32 AFh Compare le contenu d'un registre EAX avec le double mot ES:(R)DI et incrémente ou décrémente R(DI).
SCAS mem64 AFh Compare le contenu d'un registre RAX avec le double mot ES:(R)DI et incrémente ou décrémente R(DI).

Exceptions

Message Mode réel Virtuel 8086 Mode protégé Description
#GP(Protection général) X X X Une adresse mémoire dépasse la limite du segment ES ou n'est pas canonique
    X Un segment 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 CMPS

Références

Le livre d'Or PC, Martin Althaus, 1992, ISBN: 2-7361-0934-1, page 832
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 223.
Intel® 64 and IA-32 Architectures Software Developer’s Manual Volume 2B: Instruction Set Reference, N-Z, Edition Intel, Mars 2010, Publication No. 253667-034US, page 413 à 417.

Dernière mise à jour : Vendredi, le 5 septembre 2014