(1)數據傳送類指令(7種助記符)
MOV(英文為Move):對內部數據寄存器RAM和特殊功能寄存器SFR的數據進行傳送;
MOVC(Move Code)讀取程序存儲器數據表格的數據傳送;
MOVX (Move External RAM) 對外部RAM的數據傳送;
XCH (Exchange) 字節交換;
XCHD (Exchange low-order Digit) 低半字節交換;
PUSH (Push onto Stack) 入棧;
POP (Pop from Stack) 出棧;
(2)算術運算類指令(8種助記符)
ADDC(Add with Carry) 帶進位加法;
SUBB(Subtract with Borrow) 帶借位減法;
DA(Decimal Adjust) 十進制調整;
INC(Increment) 加1;DEC(Decrement) 減1;
MUL(Multiplication、Multiply) 乘法;
DIV(Division、Divide) 除法;
(3)邏輯運算類指令(10種助記符)
ANL(AND Logic) 邏輯與;
XRL(Exclusive-OR Logic) 邏輯異或;
CLR(Clear) 清零;CPL(Complement) 取反;
RL(Rotate left) 循環左移;
RLC(Rotate Left throught the Carry flag) 帶進位循環左移;
RR(Rotate Right) 循環右移;
RRC (Rotate Right throught the Carry flag) 帶進位循環右移;
SWAP (Swap) 低4位與高4位交換;
(4)控制轉移類指令(17種助記符)
ACALL(Absolute subroutine Call)子程序絕對調用;
LCALL(Long subroutine Call)子程序長調用;
RET(Return from subroutine)子程序返回;
RETI(Return from Interruption)中斷返回;
SJMP(Short Jump)短轉移;LJMP長轉移;
AJMP(Absolute Jump)絕對轉移;
CJNE (Compare Jump if Not Equal)比較不相等則轉移;
DJNZ (Decrement Jump if Not Zero)減1后不為0則轉移;
JZ (Jump if Zero)結果為0則轉移;
JNZ (Jump if Not Zero) 結果不為0則轉移;
JC (Jump if the Carry flag is set)有進位則轉移;
JNC (Jump if Not Carry)無進位則轉移;
JB (Jump if the Bit is set)位為1則轉移;
JNB (Jump if the Bit is Not set) 位為0則轉移;
(3)JBC(Jump if the Bit is set and Clear the bit) 位為1則轉移,并清除該位;
NOP (No Operation) 空操作;
(5)位操作指令(1種助記符)
SETB(Set Bit) 位 置1 。
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----》define word
PROC----》procedure
ENDP----》end of procedure
SEGMENT----》segment
ASSUME----》assume
ENDS----》end segment(段, 節,片斷)
END----》end
評論