1.通用数据传送指令.
MOV----> move MOVSX---->extended move with sign data
MOVZX---->extended move with zero data PUSH---->push POP---->pop
PUSHA---->push all POPA---->pop all PUSHAD---->push all data
POPAD---->pop all data BSWAP---->byte swap XCHG---->exchange
CMPXCHG---->compare and change XADD---->exchange and add
XLAT---->translate
2.输入输出端口传送指令.
IN---->input OUT---->output
3.目的地址传送指令.
LEA---->load effective address LDS---->load DS LES---->load ES
LFS---->load FS LGS---->load GS LSS---->load SS
4.标志传送指令.
LAHF---->load AH from flag SAHF---->save AH to flag PUSHF---->push flag POPF---->pop flag PUSHD---->push dflag POPD---->pop dflag
二、算术运算指令
ADD---->add ADC---->add with carry INC---->increase 1
AAA---->ascii add with adjust DAA---->decimal add with adjust SUB---->substract
SBB---->substract with borrow DEC---->decrease 1 NEC---->negative
CMP---->compare AAS---->ascii adjust on substract
DAS---->decimal adjust on substract MUL---->multiplication
IMUL---->integer multiplication AAM---->ascii adjust on multiplication
DIV---->divide IDIV---->integer divide AAD---->ascii adjust on divide
CBW---->change byte to word CWD---->change word to double word
CWDE---->change word to double word with sign to EAX
CDQ---->change double word to quadrate word
三、逻辑运算指令
AND---->and OR---->or XOR---->xor NOT---->not TEST---->test
SHL---->shift left SAL---->arithmatic shift left SHR---->shift right
SAR---->arithmatic shift right ROL---->rotate left ROR---->rotate right
RCL---->rotate left with carry RCR---->rotate right with carry
四、串指令
MOVS---->move string CMPS---->compare string SCAS---->scan string
LODS---->load string STOS---->store string REP---->repeat
REPE---->repeat when equal REPZ---->repeat when zero flag
REPNE---->repeat when not equal REPNZ---->repeat when zero flag
REPC---->repeat when carry flag REPNC---->repeat when not carry flag
五、程序转移指令
1>无条件转移指令(长转移)
JMP---->jump CALL---->call RET---->return RETF---->return far
2>条件转移指令(短转移,-128到+127的距离内)
JAE---->jump when above or equal JNB---->jump when not below
JB---->jump when below JNAE---->jump when not above or equal
JBE---->jump when below or equal JNA---->jump when not above
JG---->jump when greater JNLE---->jump when not less or equal
JGE---->jump when greater or equal JNL---->jump when not less
JL---->jump when less JNGE---->jump when not greater or equal
JLE---->jump when less or equal JNG---->jump when not greater
JE---->jump when equal JZ---->jump when has zero flag
JNE---->jump when not equal JNZ---->jump when not has zero flag
JC---->jump when has carry flag JNC---->jump when not has carry flag
JNO---->jump when not has overflow flag JNP---->jump when not has parity flag
JPO---->jump when parity flag is odd JNS---->jump when not has sign flag
JO---->jump when has overflow flag JP---->jump when has parity flag
JPE---->jump when parity flag is even JS---->jump when has sign flag
3>循环控制指令(短转移)
LOOP---->loop LOOPE---->loop equal LOOPZ---->loop zero
LOOPNE---->loop not equal LOOPNZ---->loop not zero
JCXZ---->jump when CX is zero JECXZ---->jump when ECX is zero
4>中断指令
INT---->interrupt INTO---->overflow interrupt IRET---->interrupt return
5>处理器控制指令
HLT---->halt WAIT---->wait ESC---->escape LOCK---->lock NOP---->no operation
STC---->set carry CLC---->clear carry CMC---->carry make change
STD---->set direction CLD---->clear direction STI---->set interrupt
CLI---->clear interrupt
六、伪指令
DW---->definw word PROC---->procedure ENDP---->end of procedure
SEGMENT---->segment ASSUME---->assume ENDS---->end segment
END---->end