彙編語言指令英文全稱

1.通用數據傳送指令
MOV----> move
MOV dest,src;dest←src
MOV指令把一個字節或字的操做數從源地址src傳送至目的地址dest。
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
交換指令用來將源操做數和目的操做數內容交換,操做數能夠是字、也能夠是字節,能夠在通用寄存器與通用寄存器或存儲器之間對換數據,但不能在存儲器與存儲器之間對換數據。
mov ax,1234h ;ax=1234h
mov bx,5678h ;bx=5678h
xchg ax,bx ;ax=5678h,bx=1234h
xchg ah,al ;ax=7856h
CMPXCHG---->compare and change
XADD---->exchange and add
XLAT---->translate
換碼指令用於將BX指定的緩衝區中、AL指定的位移處的數據取出賦給AL。
2.輸入輸出端口傳送指令
IN---->input
OUT---->output
3.目的地址傳送指令
LEA---->load effective addres
有效地址傳送指令
mov bx,0400h
mov si,3ch
lea bx,[bx+si+0f62h] ;BX=139EH
這裏BX獲得的是主存單元的有效地址,不是物理地址,也不是該單元的內容。
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
2、算術運算指令
ADD---->add
加法指令 mov al,0fbh ;al=0fbh
add al,07h ;al=02h
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 toEAX
CDQ---->change double word to quadrate word
3、邏輯運算指令
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
4、串指令
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
5、程序轉移指令
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
6、僞指令
DW---->definw word
PROC---->procedure
ENDP---->end of procedure
SEGMENT---->segment
ASSUME---->assume
ENDS---->end segment
END---->end
彙編指令中文釋義
數據傳輸指令
───────────────────────────────────────
它們在存貯器和寄存器、寄存器和輸入輸出端口之間傳送數據.
1. 通用數據傳送指令.
MOV 傳送字或字節.
MOVSX 先符號擴展,再傳送.
MOVZX 先零擴展,再傳送.
PUSH 把字壓入堆棧.
POP 把字彈出堆棧.
PUSHA 把AX,CX,DX,BX,SP,BP,SI,DI依次壓入堆棧.
POPA 把DI,SI,BP,SP,BX,DX,CX,AX依次彈出堆棧.
PUSHAD 把EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI依次壓入堆棧.
POPAD 把EDI,ESI,EBP,ESP,EBX,EDX,ECX,EAX依次彈出堆棧.
BSWAP 交換32位寄存器裏字節的順序
XCHG 交換字或字節.( 至少有一個操做數爲寄存器,段寄存器不可做爲操做數)
CMPXCHG 比較並交換操做數.( 第二個操做數必須爲累加器AL/AX/EAX )
XADD 先交換再累加.( 結果在第一個操做數裏 )
XLAT 字節查錶轉換.
── BX 指向一張 256 字節的表的起點, AL 爲表的索引值 (0-255,即
0-FFH); 返回 AL 爲查表結果. ( [BX+AL]->AL )
2. 輸入輸出端口傳送指令.
IN I/O端口輸入. ( 語法:IN 累加器, {端口號│DX} )
OUT I/O端口輸出. ( 語法:OUT {端口號│DX},累加器 )
輸入輸出端口由當即方式指定時, 其範圍是 0-255; 由寄存器 DX 指定時,
其範圍是 0-65535.
3. 目的地址傳送指令.
LEA 裝入有效地址.
例: LEA DX,string ;把偏移地址存到DX.
LDS 傳送目標指針,把指針內容裝入DS.
例: LDS SI,string ;把段地址:偏移地址存到DS:SI.
LES 傳送目標指針,把指針內容裝入ES.
例: LES DI,string ;把段地址:偏移地址存到ES:DI.
LFS 傳送目標指針,把指針內容裝入FS.
例: LFS DI,string ;把段地址:偏移地址存到FS:DI.
LGS 傳送目標指針,把指針內容裝入GS.
例: LGS DI,string ;把段地址:偏移地址存到GS:DI.
LSS 傳送目標指針,把指針內容裝入SS.
例: LSS DI,string ;把段地址:偏移地址存到SS:DI.
4. 標誌傳送指令.
LAHF 標誌寄存器傳送,把標誌裝入AH.
SAHF 標誌寄存器傳送,把AH內容裝入標誌寄存器.
PUSHF 標誌入棧.
POPF 標誌出棧.
PUSHD 32位標誌入棧.
POPD 32位標誌出棧.
2、算術運算指令
───────────────────────────────────────
ADD 加法.
ADC 帶進位加法.
INC 加 1.
AAA 加法的ASCII碼調整.
DAA 加法的十進制調整.
SUB 減法.
SBB 帶借位減法.
DEC 減 1.
NEC 求反(以 0 減之).
CMP 比較.(兩操做數做減法,僅修改標誌位,不回送結果).
AAS 減法的ASCII碼調整.
DAS 減法的十進制調整.
MUL 無符號乘法.
IMUL 整數乘法.
以上兩條,結果回送AH和AL(字節運算),或DX和AX(字運算),
AAM 乘法的ASCII碼調整.
DIV 無符號除法.
IDIV 整數除法.
以上兩條,結果回送:
商回送AL,餘數回送AH, (字節運算);
或 商回送AX,餘數回送DX, (字運算).
AAD 除法的ASCII碼調整.
CBW 字節轉換爲字. (把AL中字節的符號擴展到AH中去)
CWD 字轉換爲雙字. (把AX中的字的符號擴展到DX中去)
CWDE 字轉換爲雙字. (把AX中的字符號擴展到EAX中去)
CDQ 雙字擴展. (把EAX中的字的符號擴展到EDX中去)
3、邏輯運算指令
───────────────────────────────────────
AND 與運算.
or 或運算.
XOR 異或運算.
NOT 取反.
TEST 測試.(兩操做數做與運算,僅修改標誌位,不回送結果).
SHL 邏輯左移.
SAL 算術左移.(=SHL)
SHR 邏輯右移.
SAR 算術右移.(=SHR) 當值爲負時,高位補 1 ;當值爲正時,高位補 0
ROL 循環左移.
ROR 循環右移.
RCL 經過進位的循環左移.
RCR 經過進位的循環右移.
以上八種移位指令,其移位次數可達255次.
移位一次時, 可直接用操做碼. 如 SHL AX,1.
移位>1次時, 則由寄存器CL給出移位次數.
如 MOV CL,04
SHL AX,CL
4、串指令
───────────────────────────────────────
DS:SI 源串段寄存器 :源串變址.
ES:DI 目標串段寄存器:目標串變址.
CX 重複次數計數器.
AL/AX 掃描值.
D標誌 0表示重複操做中SI和DI應自動增量; 1表示應自動減量.
Z標誌 用來控制掃描或比較操做的結束.
MOVS 串傳送.
( MOVSB 傳送字符. MOVSW 傳送字. MOVSD 傳送雙字. )
CMPS 串比較.
( CMPSB 比較字符. CMPSW 比較字. )
SCAS 串掃描.
把AL或AX的內容與目標串做比較,比較結果反映在標誌位.
LODS 裝入串.
把源串中的元素(字或字節)逐一裝入AL或AX中.
( LODSB 傳送字符. LODSW 傳送字. LODSD 傳送雙字. )
STOS 保存串.
是LODS的逆過程.
REP 當CX/ECX<>0時重複.
REPE/REPZ 當ZF=1或比較結果相等,且CX/ECX<>0時重複.
REPNE/REPNZ 當ZF=0或比較結果不相等,且CX/ECX<>0時重複.
REPC 當CF=1且CX/ECX<>0時重複.
REPNC 當CF=0且CX/ECX<>0時重複.
5、程序轉移指令
───────────────────────────────────────
1>無條件轉移指令 (長轉移)
JMP 無條件轉移指令
CALL 過程調用
RET/RETF過程返回.
2>條件轉移指令 (短轉移,-128到+127的距離內)
( 當且僅當(SF XOR OF)=1時,OP1 JA/JNBE 不小於或不等於時轉移.
JAE/JNB 大於或等於轉移.
JB/JNAE 小於轉移.
JBE/JNA 小於或等於轉移.
以上四條,測試無符號整數運算的結果(標誌C和Z).
JG/JNLE 大於轉移.
JGE/JNL 大於或等於轉移.
JL/JNGE 小於轉移.
JLE/JNG 小於或等於轉移.
以上四條,測試帶符號整數運算的結果(標誌S,O和Z).
JE/JZ 等於轉移.
JNE/JNZ 不等於時轉移.
JC 有進位時轉移.
JNC 無進位時轉移.
JNO 不溢出時轉移.
JNP/JPO 奇偶性爲奇數時轉移.
JNS 符號位爲 "0" 時轉移.
JO 溢出轉移.
JP/JPE 奇偶性爲偶數時轉移.
JS 符號位爲 "1" 時轉移.
3>循環控制指令(短轉移)
LOOP CX不爲零時循環.
LOOPE/LOOPZ CX不爲零且標誌Z=1時循環.
LOOPNE/LOOPNZ CX不爲零且標誌Z=0時循環.
JCXZ CX爲零時轉移.
JECXZ ECX爲零時轉移.
4>中斷指令
INT 中斷指令
INTO 溢出中斷
IRET 中斷返回
5>處理器控制指令
HLT 處理器暫停, 直到出現中斷或復位信號才繼續.
WAIT 當芯片引線TEST爲高電平時使CPU進入等待狀態.
ESC 轉換到外處理器.
LOCK 封鎖總線.
NOP 空操做.
STC 置進位標誌位.
CLC 清進位標誌位.
CMC 進位標誌取反.
STD 置方向標誌位.
CLD 清方向標誌位.
STI 置中斷容許位.
CLI 清中斷容許位.
6、僞指令
─────────────────────────────────────
DW 定義字(2字節).
PROC 定義過程.
ENDP 過程結束.
SEGMENT 定義段.
ASSUME 創建段寄存器尋址.
ENDS 段結束.
END 程序結束.less

相關文章
相關標籤/搜索