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