mirror of
				https://github.com/larsbrinkhoff/awesome-cpus
				synced 2025-11-04 10:16:01 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			248 lines
		
	
	
		
			8.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			248 lines
		
	
	
		
			8.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
Appendix B  Complete Flag Cross-Reference
 | 
						|
 | 
						|
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
 | 
						|
 | 
						|
Key to Codes
 | 
						|
 | 
						|
T     = instruction tests flag
 | 
						|
 | 
						|
M     = instruction modifies flag
 | 
						|
        (either sets or resets depending on operands)
 | 
						|
 | 
						|
0     = instruction resets flag
 | 
						|
 | 
						|
1     = instruction sets flag
 | 
						|
 | 
						|
ÄÄ    = instruction's effect on flag is undefined
 | 
						|
 | 
						|
R     = instruction restores prior value of flag
 | 
						|
 | 
						|
blank = instruction does not affect flag
 | 
						|
 | 
						|
 | 
						|
Instruction            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/BSR                ÄÄ   ÄÄ   M    ÄÄ   ÄÄ   ÄÄ
 | 
						|
BT/BTS/BTR/BTC         ÄÄ   ÄÄ   ÄÄ   ÄÄ   ÄÄ   M
 | 
						|
CALL
 | 
						|
CBW
 | 
						|
CLC                                             0
 | 
						|
CLD                                                            0
 | 
						|
CLI                                                       0
 | 
						|
CLTS
 | 
						|
CMC                                             M
 | 
						|
CMP                    M    M    M    M    M    M
 | 
						|
CMPS                   M    M    M    M    M    M              T
 | 
						|
CWD
 | 
						|
DAA                    ÄÄ   M    M    TM   M    TM
 | 
						|
DAS                    ÄÄ   M    M    TM   M    TM
 | 
						|
DEC                    M    M    M    M    M
 | 
						|
DIV                    ÄÄ   ÄÄ   ÄÄ   ÄÄ   ÄÄ   ÄÄ
 | 
						|
ENTER
 | 
						|
ESC
 | 
						|
HLT
 | 
						|
IDIV                   ÄÄ   ÄÄ   ÄÄ   ÄÄ   ÄÄ   ÄÄ
 | 
						|
IMUL                   M    ÄÄ   ÄÄ   ÄÄ   ÄÄ   M
 | 
						|
IN
 | 
						|
INC                    M    M    M    M    M
 | 
						|
INS                                                            T
 | 
						|
INT                                                  0              0
 | 
						|
INTO                   T                             0              0
 | 
						|
IRET                   R    R    R    R    R    R    R    R    R    T
 | 
						|
Jcond                  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/LOOPNE                     T
 | 
						|
LSL                              M
 | 
						|
LTR
 | 
						|
MOV
 | 
						|
MOV control, debug     ÄÄ   ÄÄ   ÄÄ   ÄÄ   ÄÄ   ÄÄ
 | 
						|
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/RCR 1              M                        TM
 | 
						|
RCL/RCR count          ÄÄ                       TM
 | 
						|
REP/REPE/REPNE
 | 
						|
RET
 | 
						|
ROL/ROR 1              M                        M
 | 
						|
ROL/ROR count          ÄÄ                       M
 | 
						|
SAHF                        R    R    R    R    R
 | 
						|
SAL/SAR/SHL/SHR 1      M    M    M    ÄÄ   M    M
 | 
						|
SAL/SAR/SHL/SHR count  ÄÄ   M    M    ÄÄ   M    M
 | 
						|
SBB                    M    M    M    M    M    TM
 | 
						|
SCAS                   M    M    M    M    M    M              T
 | 
						|
SET cond               T    T    T         T    T
 | 
						|
SGDT/SIDT/SLDT/SMSW
 | 
						|
SHLD/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
 | 
						|
VERR/VERRW                       M
 | 
						|
WAIT
 | 
						|
XCHG
 | 
						|
XLAT
 | 
						|
XOR                    0    M    M    ÄÄ   M    0
 | 
						|
 | 
						|
 | 
						|
Appendix C  Status Flag Summary
 | 
						|
 | 
						|
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
 | 
						|
 | 
						|
Status Flags' Functions
 | 
						|
 | 
						|
Bit  Name   Function
 | 
						|
 | 
						|
 0   CF     Carry Flag ÄÄ Set on high-order bit carry or borrow; cleared
 | 
						|
            otherwise.
 | 
						|
 2   PF     Parity Flag ÄÄ Set if low-order eight bits of result contain
 | 
						|
            an even number of 1 bits; cleared otherwise.
 | 
						|
 4   AF     Adjust flag ÄÄ Set on carry from or borrow to the low order
 | 
						|
            four bits of   AL; cleared otherwise. Used for decimal
 | 
						|
            arithmetic.
 | 
						|
 6   ZF     Zero Flag ÄÄ Set if result is zero; cleared otherwise.
 | 
						|
 7   SF     Sign Flag ÄÄ Set equal to high-order bit of result (0 is
 | 
						|
            positive, 1 if negative).
 | 
						|
11   OF     Overflow Flag ÄÄ Set if result is too large a positive number
 | 
						|
            or too small a negative number (excluding sign-bit) to fit in
 | 
						|
            destination operand; cleared otherwise.
 | 
						|
 | 
						|
Key to Codes
 | 
						|
 | 
						|
T     = instruction tests flag
 | 
						|
M     = instruction modifies flag
 | 
						|
        (either sets or resets depending on operands)
 | 
						|
0     = instruction resets flag
 | 
						|
ÄÄ    = instruction's effect on flag is undefined
 | 
						|
blank = instruction does not affect flag
 | 
						|
 | 
						|
 | 
						|
 | 
						|
Instruction            OF   SF   ZF   AF   PF   CF
 | 
						|
AAA                    ÄÄ   ÄÄ   ÄÄ   TM   ÄÄ   M
 | 
						|
AAS                    ÄÄ   ÄÄ   ÄÄ   TM   ÄÄ   M
 | 
						|
AAD                    ÄÄ   M    M    ÄÄ   M    ÄÄ
 | 
						|
AAM                    ÄÄ   M    M    ÄÄ   M    ÄÄ
 | 
						|
DAA                    ÄÄ   M    M    TM   M    TM
 | 
						|
DAS                    ÄÄ   M    M    TM   M    TM
 | 
						|
ADC                    M    M    M    M    M    TM
 | 
						|
ADD                    M    M    M    M    M    M
 | 
						|
SBB                    M    M    M    M    M    TM
 | 
						|
SUB                    M    M    M    M    M    M
 | 
						|
CMP                    M    M    M    M    M    M
 | 
						|
CMPS                   M    M    M    M    M    M
 | 
						|
SCAS                   M    M    M    M    M    M
 | 
						|
NEG                    M    M    M    M    M    M
 | 
						|
DEC                    M    M    M    M    M
 | 
						|
INC                    M    M    M    M    M
 | 
						|
IMUL                   M    ÄÄ   ÄÄ   ÄÄ   ÄÄ   M
 | 
						|
MUL                    M    ÄÄ   ÄÄ   ÄÄ   ÄÄ   M
 | 
						|
RCL/RCR 1              M                        TM
 | 
						|
RCL/RCR count          ÄÄ                       TM
 | 
						|
ROL/ROR 1              M                        M
 | 
						|
ROL/ROR count          ÄÄ                       M
 | 
						|
SAL/SAR/SHL/SHR 1      M    M    M    ÄÄ   M    M
 | 
						|
SAL/SAR/SHL/SHR count  ÄÄ   M    M    ÄÄ   M    M
 | 
						|
SHLD/SHRD              ÄÄ   M    M    ÄÄ   M    M
 | 
						|
BSF/BSR                ÄÄ   ÄÄ   M    ÄÄ   ÄÄ   ÄÄ
 | 
						|
BT/BTS/BTR/BTC         ÄÄ   ÄÄ   ÄÄ   ÄÄ   ÄÄ   M
 | 
						|
AND                    0    M    M    ÄÄ   M    0
 | 
						|
OR                     0    M    M    ÄÄ   M    0
 | 
						|
TEST                   0    M    M    ÄÄ   M    0
 | 
						|
XOR                    0    M    M    ÄÄ   M    0
 | 
						|
 | 
						|
 | 
						|
Appendix D  Condition Codes
 | 
						|
 | 
						|
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
 | 
						|
 | 
						|
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
 | 
						|
Note:
 | 
						|
  The terms "above" and "below" refer to the relation between two
 | 
						|
  unsigned values (neither SF nor OF is tested). The terms "greater" and
 | 
						|
  "less" refer to the relation between two signed values (SF and OF are
 | 
						|
  tested).
 | 
						|
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
 | 
						|
 | 
						|
Definition of Conditions
 | 
						|
 | 
						|
(For conditional instructions Jcond, and SETcond)
 | 
						|
 | 
						|
 | 
						|
                                       Instruction  Condition
 | 
						|
Mnemonic  Meaning                      Subcode      Tested
 | 
						|
 | 
						|
O         Overflow                     0000         OF = 1
 | 
						|
 | 
						|
NO        No overflow                  0001         OF = 0
 | 
						|
 | 
						|
B         Below
 | 
						|
NAE       Neither above nor equal      0010         CF = 1
 | 
						|
 | 
						|
NB        Not below
 | 
						|
AE       Above or equal                0011         CF = 0
 | 
						|
 | 
						|
E         Equal
 | 
						|
Z         Zero                         0100         ZF = 1
 | 
						|
 | 
						|
NE        Not equal
 | 
						|
NZ        Not zero                     0101         ZF = 0
 | 
						|
 | 
						|
BE        Below or equal
 | 
						|
NA        Not above                    0110         (CF or ZF) = 1
 | 
						|
 | 
						|
NBE       Neither below nor equal
 | 
						|
NA        Above                        0111         (CF or ZF) = 0
 | 
						|
 | 
						|
S         Sign                         1000         SF = 1
 | 
						|
 | 
						|
NS        No sign                      1001         SF = 0
 | 
						|
 | 
						|
P         Parity
 | 
						|
PE        Parity even                  1010         PF = 1
 | 
						|
 | 
						|
NP        No parity
 | 
						|
PO        Parity odd                   1011         PF = 0
 | 
						|
 | 
						|
L         Less
 | 
						|
NGE       Neither greater nor equal    1100         (SF xor OF) = 1
 | 
						|
 | 
						|
NL        Not less
 | 
						|
GE        Greater or equal             1101         (SF xor OF) = 0
 | 
						|
 | 
						|
LE        Less or equal
 | 
						|
NG        Not greater                  1110         ((SF xor OF) or ZF) = 1
 | 
						|
 | 
						|
NLE       Neither less nor equal
 | 
						|
G         Greater                      1111         ((SF xor OF) or ZF) = 0
 |