В таблице приведены воздействия команд на флаги в регистре флагов EFLAGS, при этом используются следующие обозначения:
T | : | Флаг проверяется. |
M | : | Флаг изменяет своё значение |
0 | : | Флаг сбрасывается. |
1 | : | Флаг устанавливается. |
- | : | Значение флага не определено. |
R | : | Значение флага восстанавливается в предыдущее. |
Пустое место : Флаг не меняется. |
Взаимодействие команд с флагами EFLAGS
Команда | OF | SF | ZF | AF | PF | CF | TF | IF | DF | NT | RF |
AAA | - | - | - | TM | - | M | |||||
AAD | - | M | M | - | M | - | |||||
AAM | - | M | M | - | M | - | |||||
AAS | - | - | - | TM | - | M | |||||
ADC | M | M | M | M | M | TM | |||||
ADD | M | M | M | M | M | M | |||||
AND | 0 | M | M | - | M | 0 | |||||
ARPL | M | ||||||||||
BOUND | |||||||||||
BSF | - | - | M | - | - | - | |||||
BSR | - | - | M | - | - | - | |||||
BSWAP | |||||||||||
BT | - | - | - | - | - | M | |||||
BTS | - | - | - | - | - | M | |||||
BTR | - | - | - | - | - | M | |||||
BTC | - | - | - | - | - | M | |||||
CALL | |||||||||||
CBW | |||||||||||
CLC | 0 | ||||||||||
CLD | 0 | ||||||||||
CLI | 0 | ||||||||||
CLTS | |||||||||||
CMC | M | ||||||||||
CMOVcc | T | T | T | T | T | ||||||
CMP | M | M | M | M | M | M | |||||
CMPS | M | M | M | M | M | M | T | ||||
CMPXCHG | M | M | M | M | M | M | |||||
CMPXCHG8B | M | ||||||||||
COMSID | 0 | 0 | M | 0 | M | M | |||||
COMISS | 0 | 0 | M | 0 | M | M | |||||
CPUID | |||||||||||
CWD | |||||||||||
DAA | - | M | M | TM | M | TM | |||||
DAS | - | M | M | TM | M | TM | |||||
DEC | M | M | M | M | M | ||||||
DIV | - | - | - | - | - | - | |||||
ENTER | |||||||||||
ESC | |||||||||||
FCMOVcc | T | T | T | ||||||||
FCOMI | M | M | M | ||||||||
FCOMIP | M | M | M | ||||||||
FUCOMI | M | M | M | ||||||||
FUCOMIP | M | M | M | ||||||||
HLT | |||||||||||
IDIV | - | - | - | - | - | - | |||||
IMUL | M | - | - | - | - | M | |||||
IN | |||||||||||
INC | M | M | M | M | M | ||||||
INS | T | ||||||||||
INT | 0 | 0 | |||||||||
INTO | T | 0 | 0 | ||||||||
INVD | |||||||||||
INVLPG | |||||||||||
UCOMSID | 0 | 0 | M | 0 | M | M | |||||
UCOMISS | 0 | 0 | M | 0 | M | M | |||||
IRET | R | R | R | R | R | R | R | R | R | T | |
Jcc | T | T | T | T | T | ||||||
JCXZ | |||||||||||
JMP | |||||||||||
LAHF | |||||||||||
LAR | M | ||||||||||
LDS | |||||||||||
LES | |||||||||||
LSS | |||||||||||
LFS | |||||||||||
LGS | |||||||||||
LEA | |||||||||||
LEAVE | |||||||||||
LGDT | |||||||||||
LIDT | |||||||||||
LLDT | |||||||||||
LMSW | |||||||||||
LOCK | |||||||||||
LODS | T | ||||||||||
LOOP | |||||||||||
LOOPE | T | ||||||||||
LOOPNE | T | ||||||||||
LSL | M | ||||||||||
LTR | |||||||||||
MOV | |||||||||||
MOV control | - | - | - | - | - | - | |||||
MOV debug | - | - | - | - | - | - | |||||
MOV test | - | - | - | - | - | - | |||||
MOVS | T | ||||||||||
MOVSX | |||||||||||
MOVZX | |||||||||||
MUL | M | - | - | - | - | M | |||||
NEG | M | M | M | M | M | M | |||||
NOP | |||||||||||
NOT | |||||||||||
OR | 0 | M | M | - | M | 0 | |||||
OUT | |||||||||||
OUTS | T | ||||||||||
POP | |||||||||||
POPA | |||||||||||
POPF | R | R | R | R | R | R | R | R | R | R | |
PUSH | |||||||||||
PUSHA | |||||||||||
PUSHF | |||||||||||
RCL на 1 бит | M | TM | |||||||||
RCR на 1 бит | M | TM | |||||||||
RCL на n бит | - | TM | |||||||||
RCR на n бит | - | TM | |||||||||
RDMSR | |||||||||||
RDPMC | |||||||||||
RDTSC | |||||||||||
REP | |||||||||||
REPE | |||||||||||
REPNE | |||||||||||
RET | |||||||||||
ROL на 1 бит | M | M | |||||||||
ROR на 1 бит | M | M | |||||||||
ROL на n бит | - | M | |||||||||
ROR на n бит | - | M | |||||||||
RSM | M | M | M | M | M | M | M | M | M | M | M |
SAHF | R | R | R | R | R | ||||||
SAL на 1 бит | M | M | M | - | M | M | |||||
SAR на 1 бит | M | M | M | - | M | M | |||||
SHL на 1 бит | M | M | M | - | M | M | |||||
SHR на 1 бит | M | M | M | - | M | M | |||||
SAL на n бит | - | M | M | - | M | M | |||||
SAR на n бит | - | M | M | - | M | M | |||||
SHL на n бит | - | M | M | - | M | M | |||||
SHR на n бит | - | M | M | - | M | M | |||||
SBB | M | M | M | M | M | TM | |||||
SCAS | M | M | M | M | M | M | T | ||||
SETcc | T | T | T | T | T | ||||||
SGDT | |||||||||||
SIDT | |||||||||||
SLDT | |||||||||||
SMSW | |||||||||||
SHLD | - | M | M | - | M | M | |||||
SHRD | - | M | M | - | M | M | |||||
STC | 1 | ||||||||||
STD | 1 | ||||||||||
STI | 1 | ||||||||||
STOS | T | ||||||||||
STR | |||||||||||
SUB | M | M | M | M | M | M | |||||
TEST | 0 | M | M | - | M | 0 | |||||
UD2 | |||||||||||
VERR | M | ||||||||||
VERRW | M | ||||||||||
WAIT | |||||||||||
WBINVD | |||||||||||
WRMSR | |||||||||||
XADD | M | M | M | M | M | M | |||||
XCHG | |||||||||||
XLAT | |||||||||||
XOR | 0 | M | M | - | M | 0 |
См. также:
Приложения | Регистр EFLAGS | Вопросы? Замечания? Пишите: sasm@narod.ru |
Copyright © Александр Семенко. |