UMBC | Flags | Previous | Next |
Instr | Format | Description | O | D | I | S | Z | A | P | C |
AAA | AAA | Adjust alter addition | ? | ? | ? | * | P | * | ||
AAD | AAD | ASCII adjust before division | ? | * | * | * | * | ? | ||
AAM | AAM | ASCII adjust after multiply | ? | * | * | ? | * | ? | ||
AAS | AAS | ASCII adjust after subtraction | ? | ? | ? | * | ? | * | ||
ADC | ADC reg, regADC mem, reg ADC reg, mem ADC reg, immed ADC accum, immed | Add with carry | * | * | * | * | * | * | ||
ADD | ADC reg, reg ADC mem, reg ADC reg, mem ADC reg, immed ADC accum, immed | Add | * | * | * | * | * | * | ||
AND | ADC reg, reg ADC mem, reg ADC reg, mem ADC reg, immed ADC accum, immed | Logical AND | * | * | * | ? | * | 0 | ||
CALL | CALL nearlabel CALL farlabel CALL reg CALL mem16 CALL mem32 | Call a procedure | ||||||||
CBW | CBW | Convert byte to word | ||||||||
CLC | CLC | Clear carry flag | 0 | |||||||
CLD | CLD | Clear direction flag | 0 | |||||||
CLI | CLI | Clear interrupt flag | 0 | |||||||
CMC | CMC | Complement carry flag | * | |||||||
CMP | CMP | C | ||||||||
CMP | CMP reg, reg CMP mem, reg CMP reg, mem CMP reg, immed CMP mem, immed CMP accum, immed | Compare | * | * | * | * | * | * | ||
CMPS | CMPS source, dest CMPS segreg:source, ES:dest | Compare strings | * | * | * | * | * | * | ||
CMPSB | CMPSB | Compare strings | * | * | * | * | * | * | ||
CMPSW | CMPSW | Compare strings | * | * | * | * | * | * | ||
CWD | CWD | Convert word to doubleword | ||||||||
DAA | DAA | Decimal after addition | ? | * | * | * | * | * | ||
DAS | DAS | Decimal adjust after subtraction | ? | * | * | * | * | * | ||
DEC | Decrement | * | * | * | * | * | * | |||
DIV | DIV reg DIV mem | Unsigned integer divide | ? | ? | ? | ? | ? | ? | ||
ESC | ESC immed, reg ESC immed, mem | Escape | ||||||||
HLT | HLT | Halt | ||||||||
IDIV | IDIV reg IDIV mem | Signed intigned integer division | ? | ? | ? | ? | ? | ? | ||
IMUL | IMUL reg IMUL mem | Signed integer multiply | * | ? | ? | ? | ? | * | ||
IN | IN accum, immed IN accum, DX | Input from port | ||||||||
INC | INC reg INC mem | Increment | * | * | * | * | * | |||
INT | INT immed INT 3 | Interrupt | O | |||||||
INTO | INTO | Interrupt on overflow | * | * | ||||||
IRET | IRET | Interrupt return | * | * | * | * | * | * | * | * |
JA | JA shortlabel | Jump if above | ||||||||
JAE | JAE shortlabel | Jump if above or equal | ||||||||
JB | JB shortlabel | Jump if below | ||||||||
JBE | JBE shortlabel | Jump if below or equal | ||||||||
JC | JC shortlabel | Jump if carry | ||||||||
JE | JAE shortlabel | Jump if equal | ||||||||
JG | JG shortlabel | Jump if greater | ||||||||
JGE | JGE shortlabel | Jump if greater or equal | ||||||||
JL | JL shortlabel | Jump if less | ||||||||
JLE | JLE shortlabel | Jump if less or equal | ||||||||
JNA | JNA shortlabel | Jump if not above | ||||||||
JNAE | JNAE shortlabel | Jump if not above or equal | ||||||||
JNB | JNB shortlabel | Jump if not below | ||||||||
JNBE | JNBE shortlabel | Jump if not below or equal | ||||||||
JNC | JNC shortlabel | Jump if not carry | ||||||||
JNE | JNE shortlabel | Jump if not equal | ||||||||
JNG | JNG shortlabel | Jump if not greater | ||||||||
JNGE | JNGE shortlabel | Jump if not greater or equal | ||||||||
JNL | JNL shortlabel | Jump if not less | ||||||||
JNLE | JNLE shortlabel | Jump if not less or equal | ||||||||
JNO | JNO shortlabel | Jump if not overflow | ||||||||
JNP | JNP shortlabel | Jump if not parity | ||||||||
JNS | JNS shortlabel | Jump if not sign | ||||||||
JNZ | JNZ shortlabel | Jump if not zero | ||||||||
JO | JO shortlabel | Jump if overflow | ||||||||
JP | JP shortlabel | Jump if parity | ||||||||
JPE | JPE shortlabel | Jump if parity even | ||||||||
JPO | JPO shortlabel | Jump if parity odd | ||||||||
JS | JS shortlabel | Jump if sign | ||||||||
JZ | JZ shortlabel | Jump if zero | ||||||||
JCXZ | JCXZ shortlabel | Jump if CX is zero | ||||||||
JMP | JMP shortlabel JMP nearlabel JMP farlabel JMP reg16 JMP mem16 JMP mem32 | Jump unconditionally to label | ||||||||
LAHF | LAHF | Load flags into AH | ||||||||
LDS | LDS reg, mem32 | Load register and DS | ||||||||
LEA | LEA reg, mem | Load effective address | ||||||||
LES | LES reg, mem32 | Load register and ES | ||||||||
LOCKLOCK | LOCK instruction | Lock the system bus | ||||||||
LODS | LODS mem LODS segreg:mem | Load string | ||||||||
LODSB | LODSB | Load string | ||||||||
LODSW | LODSW | Load string | ||||||||
LOOP | LOOP shortlabel | Loop | ||||||||
LOOPE | LOOPE shortlabel | Loop if equal | ||||||||
LOOPZ | LOOPZ shortlabel | Loop if zero | ||||||||
LOOPNE | LOOPNE shortlabel | Loop if not equal | ||||||||
LOOPNZ | LOOPNZ shortlabel | Loop if not zero | ||||||||
MOV | MOV reg, reg MOV mem, reg MOV reg, mem MOV reg16, segreg MOV segreg, reg16 | Copies a byte or word | ||||||||
MOVS | MOVS dest, source MOVS ES:dest, segreg:source | Move string | ||||||||
MOVSB | MOVSB | Move string | ||||||||
MOVSW | MOVSW | Move string | ||||||||
MUL | MUL reg MUL mem | Unsigned integer multiply | * | ? | ? | ? | ? | * | ||
NEG | NEG reg NEG mem | Negate | * | * | * | * | * | * | ||
NOP | NOP | No operation | ||||||||
NOT | NOT reg NOT mem | Logical NOT | ||||||||
OR | OR reg, reg OR mem, reg OR reg, mem OR reg, immed OR mem, immed OR accum, immed | Logical OR | 0 | * | * | ? | * | 0 | ||
OUT | OUT immed8, accum OUT DX, accum | Output to port | ||||||||
POP | POP reg16 POP mem16 POP segreg | Pop from stack | ||||||||
PUSH | PUSH reg16 PUSH mem16 PUSH segreg | Push on stack | ||||||||
PUSHF | PUSHF | Push flags | ||||||||
RCL | RCL reg, 1 RCL reg, CL RCL mem, 1 RCL mem, CL | Rotate carry left | * | * | ||||||
RCR | RCR reg, 1 RCR reg, CL RCR mem, 1 RCR mem, CL | Rotate carry right | * | * | ||||||
REP | REP MOVS dest, source | Repeat string | ||||||||
REPZ | REPZ SCAS dest REPZ SCASB | Conditional repeat string | * | |||||||
REPE | REPE SCASW | Conditional repeat string | * | |||||||
REPNZ | REPNZ SCAS dest REPNZ SCASW | Conditional repeat string | * | |||||||
REPNE | REPNE SCASB | Conditional repeat string | * | |||||||
RET | RET RET immed8 | Return from procedure | ||||||||
RETN | RETN RETN immed8 | Return from near procedure | ||||||||
RETF | RETF RETF immed8 | Return from far procedure | ||||||||
ROL | ROL reg, 1 ROL reg, CL ROL mem, 1 ROL mem, CL | Rotate right | * | * | ||||||
ROR | ROR reg, 1 ROR reg, CL ROR mem, 1 ROR mem, CL | Rotate right | * | * | ||||||
SAHF | SAHF | Store AH into flags | * | * | * | * | * | |||
SAL | SAL reg, 1 SAL reg, CL SAL mem, 1 SAL mem, CL | Shift arithmetic left | * | * | * | ? | * | * | ||
SAR | SAR reg, 1 SAR reg, CL SAR mem, 1 SAR mem, CL | Shift arithmetic right | * | * | * | ? | * | * | ||
SBB | SBB reg, reg SBB mem, reg SBB reg, mem SBB reg, immed SBB mem, immed SBB accum, immed | Subtract with borrow | * | * | * | * | * | * | ||
SCAS | SCAS dest SCAS ES:dest | Scan string | * | * | * | * | * | * | ||
SCASB | SCASB | Scan string | * | * | * | * | * | * | ||
SCASW | SCASW | Scan string | * | * | * | * | * | * | ||
SHL | SHL reg, 1 SHL reg, CL SHL mem, 1 SHL mem, CL | Shift left | * | * | * | ? | * | * | ||
SHR | SHR reg, 1 SHR reg, CL SHR mem, 1 SHR mem, CL | Shift right | * | * | * | ? | * | * | ||
STC | STC | Set carry flag | 1 | |||||||
STD | STD | Set direction flag | 1 | |||||||
STI | STI | Set interrupt flag | 1 | |||||||
STOS | STOS mem STOS ES:mem | Store string | ||||||||
STOSB | STOSW | Store string | ||||||||
STOSB | STOSW | Store string | ||||||||
SUB | SUB reg, reg SUB mem, reg SUB reg, mem SUB reg, immed SUB mem, immed SUB accum, immed | Subtract | * | * | * | * | * | * | ||
TEST | TEST reg, reg TEST mem, reg TEST reg, mem TEST reg, immed TEST mem, immed TEST accum, immed | Test individual bits | 0 | * | * | ? | * | 0 | ||
WAIT | WAIT | Wait for coprocessor | ||||||||
XCHG | XCHG reg, reg XCHG mem, reg XCHG reg, mem | Exchange | ||||||||
XLAT | XLAT XLAT mem XLAT segreg:mem | Translate byte | ||||||||
XOR | XOR reg, reg XOR mem, reg XOR reg, mem XOR reg, immed XOR mem, immed XOR accum, immed | Exclusive OR | 0 | * | * | ? | * | 0 |