int指令:
格式: int n 其中n為中斷碼,它的功能是引發中斷,並調用中斷程序(類似call指令,但int大多調用內置中斷程序,由BIOS或者DOS提供;兩者都與iret配合使用,可以互相轉換)。
執行過程如下:
- 取中斷類型碼n
- 標志寄存器入棧,置IF = 0,TF = 0
- CS、IP依次入棧
- (IP) = (4 * n),(CS) = (4 * n + 1)
BIOS基本輸入輸出系統:
BIOS存放在系統板的ROM中,包括硬件系統的檢測和初始化程序,還有一部分內置的中斷例程供程序員調用(相當於系統提供的庫函數)
BIOS和DOS中斷例程的安裝:
- 開機后,CPU一加電,初始化(CS)= 0FFFFH,(IP)=0,系統從FFFF:0單元開始執行指令,FFFF:0處為跳轉指令,CPU轉去執行BIOS中的硬件系統檢測和初始化程序
- BIOS提供的中斷例程已經存儲在了系統的ROM中,一直存在,只需將其地址放在中斷向量表中便可調用。
- 硬件系統檢測和初始化完成之后,調用int 19h進行操作系統引導,從此將計算機交由操作系統控制。
普通中斷例程的中斷類型碼要么與錯誤類型相關,要么是有int提供。BIOS和DOS提供的中斷例程,都用ah來傳遞內部子程序的編號,然后使用int調用即可。
例如mov ah,9 int 21h意為調用第21h號中斷例程的9號子程序