第1 樓
程式流程控制指令
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 清中斷允許位.
clc,stc,cmc
功能: 設定進製標誌
格式: clc stc cmc
標誌位: c
cld,std
功能: 設定方向標誌
格式: cld std
標誌位: d
cli,sti
功能: 設定中斷標誌
格式: cli sti
標誌位: i
cmp功能: 比較op1與op2的值
格式: cmp r/m,r/m/data
標誌位: c,p,a,z,o
jmp功能: 跳往指定位址執行
格式: jmp 位址
jxx功能: 當特定條件成立則跳往指定位址執行
格式: jxx 位址
xx為下列值:
a: above,當c=0,z=0時成立
b: below,當c=1時成立
c: carry,當cf=1時成立
cxz: cx暫存器的值為0(zero)時成立
e: equal,當z=1時成立
g: greater(大於),當z=0且s=0時成立
l: less(小於),當s不為零時成立
n: not(相反條件),需和其它符號配合使用
o: overflow,o=1時成立
p: parity,p=1時成立
pe: parity even,p=1時成立
po: parity odd,p=0時成立
s: sign,s=1時成立
z: zero,z=1時成立
loop
功能: 迴圈指令集
語法: loop 位址
loope(z)
格式:loopne(z) 位址
標誌位: 無
call,ret
功能: 子程式呼叫,返回指令
語法: call 位址 ret ret n
標誌位: 無
int,iret
功能: 中斷呼叫及返回指令
語法: int n iret
標誌位: 在執行int時,cpu會自動將標誌暫存器的值入棧,在執行iret時則會將堆疊中的標誌值彈回暫存器
shr,shl,sar,sal
功能: 移位指令
格式: shr r/m,data/cl shl r/m,data/cl sar r/m,data/cl sal r/m,data/cl
影響標誌: c,p,z,s,o
ror,rol,rcr,rcl
功能: 迴圈移位指令
格式: ror r/m,data/cl rol r/m,data/cl rcr r/m,data/cl rcl r/m,data/cl
影響標誌: c,p,z,s,o
nop功能: 空操作指令。不執行任何操作,但要花費cpu乙個機器週期
格式: nop
hlt功能: 暫停指令。cpu不執行任何操作,一直處於暫停狀態,但ip指向hlt的下一條指令。
格式: hlt
脫離hlt狀態的方式:1、cpu復位;2、cpu響應中斷
esc,wait,lock
功能: 用於多處理器系統。其中esc是交權指令;wait是等待指令;lock是匯流排封鎖指令。
偽指令
dw 定義字(2位元組).
proc 定義過程.
endp 過程結束.
segment 定義段.
assume 建立段暫存器定址.
ends 段結束.
end 程式結束.
att格式彙編指令 關於ATT彙編
att 彙編大體格式是 指令 源運算元 目的運算元 比如將 10 移動到 eax 暫存器的寫法 movl 10,eax 1.att 彙編的源運算元和目的運算元和 intel 正好相反,也就是資料流向是從左到右 2.att 中立即數前需要加 符號,暫存器前加 符號 3.att 的指令加字尾 b w l...
組合語言 指令格式
記得前面提到過這個問題,幾句話就給帶過了。為什麼還要囉裡囉嗦的再說一下呢?呵呵,是這樣的,我在看一本彙編的資料時,懷疑上面的乙個語句弄錯了。想知道是不是他的彙編指令 裡包含 印刷錯誤 我想如果是印刷錯誤的話,很可能他的二進位制 跟看得懂的指令碼對不上。那麼我如何自己將那個二進位制 轉換成彙編指令碼呢...
彙編(三)組合語言的指令格式
本篇介紹匯程式設計序功能 偽操作及組合語言的指令格式。一 匯程式設計序的主要功能 1.檢查源程式 2.檢測源程式中的語法錯誤,並給出錯誤資訊 3.產生源程式的目標程式,並給出列表檔案 lst檔案,同時給出組合語言和機器語言的檔案 4.展開巨集檔案 二 偽操作 硬指令 使cpu產生動作 並在程式執行時...