完整的匯編指令:####
-
匯編由兩種指令組成
1.匯編指令
如mov、add、sub等
有對(duì)應(yīng)的機(jī)器指令,可以被編譯為機(jī)器指令,最終被CPU執(zhí)行2.偽指令
如assume、 segment、ends、end等
沒(méi)有對(duì)應(yīng)的機(jī)器指令,由編譯器解析,最終不被CPU執(zhí)行3.注釋由分號(hào)開(kāi)頭

E67F5A83-5347-40D9-AF82-9B4A3DF40070.png
偽指令 - segment,ends,end
- segment和ends的作用是定義一個(gè)段,segment代表一個(gè)段的開(kāi)始,ends代表一個(gè)段的結(jié)束,使用格式為
段名 segment :
段名 ends - 一個(gè)有意義的匯編程序中,至少要有一個(gè)段作為代碼段存放代碼
- assume
將用作代碼段的code段和CPU中的cs寄存器關(guān)聯(lián)起來(lái) - end
編譯器遇到end時(shí),就結(jié)束對(duì)源程序的編譯

此時(shí)CPU并不能停下來(lái)
中斷

此時(shí)可以停止
-
中斷是由于軟件或者硬件的信號(hào),是CPU暫停當(dāng)前任務(wù),轉(zhuǎn)而執(zhí)行另一端子程序。
-
中斷的分類
- 硬中斷(外中斷),由外部設(shè)備(比如網(wǎng)卡、硬盤)隨機(jī)引發(fā)的,比如當(dāng)網(wǎng)卡收到數(shù)據(jù)包的時(shí)候,就會(huì)發(fā)出一個(gè)中斷
軟中斷(內(nèi)中斷),由執(zhí)行中斷指令產(chǎn)生的,可以通過(guò)程序控制觸發(fā)
-
可以通過(guò)指令int n產(chǎn)生中斷
n是中斷碼,內(nèi)存中有一張中斷向量表,用來(lái)存放中斷碼對(duì)應(yīng)中斷處理程序的入口地址
CPU在接收到中斷信號(hào)后,暫停當(dāng)前正在執(zhí)行的程序,跳轉(zhuǎn)到中斷碼對(duì)應(yīng)的中斷向量表地址處,去執(zhí)行中斷處理程序
常見(jiàn)中斷
int 10h用于執(zhí)行BIOS中斷
int 3是“斷點(diǎn)中斷”,用于調(diào)試程序
int 21h用于執(zhí)行DOS系統(tǒng)功能調(diào)用,AH寄存器存儲(chǔ)功能號(hào)