Section courante

A propos

Section administrative du site

Assembleur 80x86

SET

INTEL 80386+ Set

Syntaxe

SET condition opérande

Description

Ces instructions permettent de fixer la valeur d'une opérande 1 si la condition d'indicateur d'état du registre 32 bits de drapeau est vrai sinon fixe la valeur à 0.

Il est a noter que les combinaisons de lettres permettant de représenter la condition sont indiquées dans le tableau suivant :

Instruction Condition Description
SETA A Supérieur
SETAE AE Supérieur ou égal
SETB B Inférieur
SETBE BE Inférieur ou égal
SETC C Indicateur de retenue à égal à 1
SETCXZ CXZ Si CX = 0
SETE E Zéro (Egal)
SETECXZ ECXZ Si ECX = 0
SETG G Supérieur
SETGE GE Supérieur ou égal
SETL L Inférieur
SETLE LE Inférieur ou égal
SETNA NA Pas supérieur
SETNAE NAE Ni inférieur ni égal
SETNB NB Pas inférieur
SETNC NC Indicateur de retenue égal à 0
SETNE NE Pas égal (Zéro)
SETNG NG Pas supérieur
SETNGE NGE Ni supérieur ni égal
SETNL NL Pas inférieur
SETNLE NLE Ni inférieur ni égal
SETNO NO Pas de débordement (indicateur de débordement égal à 0)
SETNP NP Pas de parité
SETNS NS Pas de signe
SETNZ NZ Pas zéro
SETO O Débordement (indicateur de débordement égal à 1)
SETP P Parité
SETPE PE Parité paire
SETPO PO Parité impaire
SETS S Signe
SETZ Z Zéro

Algorithme

SI condition ALORS
   DEST ← 1
SINON
   DEST ← 0
FIN SI

Mnémonique

Instruction Opcode Description
SETO reg/mem8 0Fh 90h /0 Fixe l'octet si le drapeau de débordement vaut 1 (OF = 1).
SETNO reg/mem8 0Fh 91h /0 Fixe l'octet si le drapeau de débordement vaut 0 (OF = 0).
SETB reg/mem8 0Fh 92h /0 Fixe l'octet si le drapeau de retenue vaut 1 (CF = 1).
SETC reg/mem8 0Fh 92h /0 Fixe l'octet si le drapeau de retenue vaut 1 (CF = 1).
SETNAE reg/mem8 0Fh 92h /0 Fixe l'octet si le drapeau de retenue vaut 1 (CF = 1).
SETNB reg/mem8 0Fh 93h /0 Fixe l'octet si le drapeau de retenue vaut 0 (CF = 0).
SETNC reg/mem8 0Fh 93h /0 Fixe l'octet si le drapeau de retenue vaut 0 (CF = 0).
SETAE reg/mem8 0Fh 93h /0 Fixe l'octet si le drapeau de retenue vaut 0 (CF = 0).
SETZ reg/mem8 0Fh 94h /0 Fixe l'octet si le drapeau de zéro vaut 1 (ZF = 1).
SETE reg/mem8 0Fh 94h /0 Fixe l'octet si le drapeau de zéro vaut 1 (ZF = 1).
SETNZ reg/mem8 0Fh 95h /0 Fixe l'octet si le drapeau de zéro vaut 1 (ZF = 1).
SETNE reg/mem8 0Fh 95h /0 Fixe l'octet si le drapeau de zéro vaut 1 (ZF = 1).
SETBE reg/mem8 0Fh 96h /0 Fixe l'octet si le drapeau de retenue et zéro vaut 1 (CF = 1 ou ZF = 1).
SETNA reg/mem8 0Fh 96h /0 Fixe l'octet si le drapeau de retenue et zéro vaut 1 (CF = 1 ou ZF = 1).
SETNBE reg/mem8 0Fh 97h /0 Fixe l'octet si le drapeau de retenue et zéro vaut 0 (CF = 0 ou ZF = 0).
SETA reg/mem8 0Fh 97h /0 Fixe l'octet si le drapeau de retenue et zéro vaut 0 (CF = 0 ou ZF = 0).
SETS reg/mem8 0Fh 98h /0 Fixe l'octet si le drapeau de signe vaut 1 (SF = 1).
SETNS reg/mem8 0Fh 99h /0 Fixe l'octet si le drapeau de signe vaut 0 (SF = 0).
SETP reg/mem8 0Fh 9Ah /0 Fixe l'octet si le drapeau de parité vaut 1 (PF = 1).
SETPE reg/mem8 0Fh 9Ah /0 Fixe l'octet si le drapeau de parité vaut 1 (PF = 1).
SETNP reg/mem8 0Fh 9Bh /0 Fixe l'octet si le drapeau de parité vaut 0 (PF = 0).
SETPO reg/mem8 0Fh 9Bh /0 Fixe l'octet si le drapeau de parité vaut 0 (PF = 0).
SETL reg/mem8 0Fh 9Ch /0 Fixe l'octet si SF <> OF.
SETNGE reg/mem8 0Fh 9Ch /0 Fixe l'octet si SF <> OF.
SETNL reg/mem8 0Fh 9Dh /0 Fixe l'octet si SF = OF.
SETGE reg/mem8 0Fh 9Dh /0 Fixe l'octet si SF = OF.
SETLE reg/mem8 0Fh 9Eh /0 Fixe l'octet si ZF = 1 ou SF <> OF.
SETNG reg/mem8 0Fh 9Eh /0 Fixe l'octet si ZF = 1 ou SF <> OF.
SETNLE reg/mem8 0Fh 9Fh /0 Fixe l'octet si ZF = 0 et SF = OF.
SETG reg/mem8 0Fh 9Fh /0 Fixe l'octet si ZF = 0 et SF = OF.

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 L'opérande de destination n'est pas dans un segment non écrivable
    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é

Références

Le livre d'Or PC, Martin Althaus, 1992, ISBN: 2-7361-0934-1, page 834 à 836
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 225.
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 418 à 422.

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