完整的匯編指令:####
-
匯編由兩種指令組成
1.匯編指令
如mov斑粱、add、sub等
有對應(yīng)的機器指令脯爪,可以被編譯為機器指令则北,最終被CPU執(zhí)行2.偽指令
如assume、 segment痕慢、ends尚揣、end等
沒有對應(yīng)的機器指令,由編譯器解析掖举,最終不被CPU執(zhí)行3.注釋由分號開頭
E67F5A83-5347-40D9-AF82-9B4A3DF40070.png
偽指令 - segment,ends,end
- segment和ends的作用是定義一個段快骗,segment代表一個段的開始,ends代表一個段的結(jié)束塔次,使用格式為
段名 segment :
段名 ends - 一個有意義的匯編程序中方篮,至少要有一個段作為代碼段存放代碼
- assume
將用作代碼段的code段和CPU中的cs寄存器關(guān)聯(lián)起來 - end
編譯器遇到end時,就結(jié)束對源程序的編譯
此時CPU并不能停下來
中斷
此時可以停止
-
中斷是由于軟件或者硬件的信號励负,是CPU暫停當前任務(wù)藕溅,轉(zhuǎn)而執(zhí)行另一端子程序。
-
中斷的分類
- 硬中斷(外中斷)继榆,由外部設(shè)備(比如網(wǎng)卡巾表、硬盤)隨機引發(fā)的,比如當網(wǎng)卡收到數(shù)據(jù)包的時候略吨,就會發(fā)出一個中斷
軟中斷(內(nèi)中斷)集币,由執(zhí)行中斷指令產(chǎn)生的,可以通過程序控制觸發(fā)
-
可以通過指令int n產(chǎn)生中斷
n是中斷碼翠忠,內(nèi)存中有一張中斷向量表惠猿,用來存放中斷碼對應(yīng)中斷處理程序的入口地址
CPU在接收到中斷信號后,暫停當前正在執(zhí)行的程序负间,跳轉(zhuǎn)到中斷碼對應(yīng)的中斷向量表地址處,去執(zhí)行中斷處理程序
常見中斷
int 10h用于執(zhí)行BIOS中斷
int 3是“斷點中斷”姜凄,用于調(diào)試程序
int 21h用于執(zhí)行DOS系統(tǒng)功能調(diào)用政溃,AH寄存器存儲功能號