彙編指令彙總及英文全稱
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
普通暫存器
AH&AL=AX(accumulator):累加暫存器
BH&BL=BX(base):基址暫存器
CH&CL=CX(count):計數暫存器
DH&DL=DX(data):資料暫存器
SP(Stack Pointer):堆疊指標暫存器
BP(Base Pointer):基址指標暫存器
SI(Source Index):源變址暫存器
DI(Destination Index):目的變址暫存器
IP(Instruction Pointer):指令指標暫存器
CS(Code Segment):程式碼段暫存器
DS(Data Segment):資料段暫存器
SS(Stack Segment):堆疊段暫存器
ES(Extra Segment):附加段暫存器
標誌暫存器:
OF overflow flag 溢位標誌 運算元超出機器能表示的範圍表示溢位,溢位時為1。
SF sign Flag 符號標誌 記錄運算結果的符號,結果負時為1。
ZF zero flag 零標誌 運算結果等於0時為1,否則為0。
CF carry flag 進位標誌 最高有效位產生進位時為1,否則為0。
AF auxiliary carry flag 輔助進位標誌運算時,第3位向第4位產生進位時為1,否則為0。
PF parity flag 奇偶標誌 運算結果運算元位為1的個數為偶數個時為1,否則為0。
DF direcion flag 方向標誌 用於串處理,DF=1時,每次操作後使SI和DI減小,DF=0時則增大。
IF interrupt flag 中斷標誌 IF=1時,允許CPU響應可遮蔽中斷,否則關閉中斷。
TF trap flag 陷阱標誌 用於除錯單步操作。