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 |