| UMBC CMSC 211 |
|
Instruction |
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, reg ADC 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 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 |
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 |
TD WIDTH="32%" VALIGN="TOP">
Signed 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 shorVALIGN="TOP">
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 Jump if not greater or equal |
|||||||||
|
JNL |
JNL shortlabel |
Jump if not less |
|||||||||
|
JNLTOP">
JNLE |
JNLE shortlabel |
Jump if not less or equal |
|||||||||
|
JNO |
JNO shortlabel |
Jump if not overflow |
|||||||||
|
JNP |
JNP shortlabel |
Jump if not parity |
&nbs/TD> | ||||||||
|
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 |
 TD> | ||||||||
|
JPO |
JPO shortlabel |
Jump if parity odd |
|||||||||
|
JS |
JS shortlabel |
Jump if sign |
|||||||||
|
JZ |
JZ shortlabel |
Jump if zero |
&nbp; | ||||||||
|
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 |
|||||||||
|
LOCK |
LOCK instruction
LOCK instruction |
Lock the system bus |
|||||||||
|
LODS |
LODS mem LODS segreg:mem |
Load string |
|||||||||
|
LODSB |
LODSB |
Load string |
TD WIDTH="3%" VALIGN="TOP"> | ||||||||
|
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 |
WIDTH="30%" VALIGN="TOP">
MOVSW |
Move string |
|||||||||
|
MUL |
MUL reg MUL mem |
Unsigned integer multiply |
* |
? |
? |
? |
? |
* |
|||
|
NEG |
NEG reg NEG mem |
Negate |
* |
&nbFONT> |
* |
* |
* |
* |
* |
||
|
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 |
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 |
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 |
&bsp; | ||||||||
|
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="TOP">
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 |