寄存器类(register):
AX–Acount
BX–Base
CX–Count
DX–Data
段寄存器:
代码段寄存器:CS--Code Segment
数据段寄存器:DS--Data Segment
堆栈段寄存器:SS--Stack Segment
附加段寄存器:ES--Extra Segment
特殊功能寄存器:
指令指针寄存器:IP--Instruction Pointer
堆栈指针:SP--Stack Pointer
基址指针:BP--Base Pointer
源变址寄存器:SI--Source Index
目标变址寄存器:DI--Destination Index
标志寄存器:FR--Flag Register(或者叫程序状态字PSW--Program Status Word)
PSW常用的标志有:
标志 值为1时的标记 值为0时的标记
OF(OverFlow Flag) OV(Over Flow) NV(Not Over Flow)
ZF(Zero Flag) ZR(Zero) NZ(Not Zero)
PF(Parity Flag) PE(Parity Even) PO(Parity Odd)
CF(Carry Flag) CY(Carried) NC(Not Carried)
DF(Direction Flag) DN(Down) UP(UP)
SF(Sign Flag) NG(Negtive) PL(Plus)
TF(Trap Flag) IF(Interrupt Flag) AF(Auxiliary Flag)
命令类
1.通用数据传送指令
MOV—-> move
MOVSX—->extended move with signdata
MOVZX—->extended move with zerodata
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 onmultiplication
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 wordwith sign to EAX
CDQ---->change double word toquadrate 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---->storestring
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 orequal
JBE---->jump when below or equal
JNA---->jump when not above
JG---->jump when greater
JNLE---->jump when not less orequal
JGE---->jump when greater orequal
JNL---->jump when not less
JL---->jump when less
JNGE---->jump when not greater orequal
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 zeroflag
JC---->jump when has carry flag
JNC---->jump when not has carryflag
JNO---->jump when not hasoverflow flag
JNP---->jump when not has parityflag
JPO---->jump when parity flag isodd
JNS---->jump when not has signflag
JO---->jump when has overflowflag
JP---->jump when has parity flag
JPE---->jump when parity flag iseven
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---->jumpwhen 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