int 指令
int 指令的格式為:int n,n為中斷類型碼,它的功能是引發終端過程。
CPU執行int n指令,相當於引發一個n號中斷的中斷過程,執行過程如下。
- 取中斷類型碼n;
- 標志寄存器入棧,IF=0,TF=0;
- CS,IP入棧;
- (IP)=(N4),(CS)=(N4+2)
從此轉去執行n號中斷的中斷處理程序。
int指令的最終功能和call指令相似,都是調用一段程序。
BIOS和DOS所提供的中斷
BIOS(基本輸入輸出系統)中主要包含以下幾部分內容:
- 硬件系統的檢測和初始化程序
- 外部中斷和內部中斷的中斷例程。
- 用於對硬件設備進行I/O操作的中斷例程
- 其他和硬件系統相關的中斷例程。
操作系統DOS也提供了中斷例程,從操作系統的角度看,DOS的中斷例程就是操作系統向程序員提供的編程資源。
BIOS和DOS在所提供的中斷例程中包含了許多子程序,這些子程序實現了程序員在編程的時候經常需要用到的功能。程序員在編程的時候,可以用int指令直接調用BIOS和DOS提供的中斷例程,來完成某些工作。
和硬件設備相關的DOS中斷例程中,一般都調用了BIOS的中斷例程。
BIOS和DOS中斷例程的安裝過程
-
開機后,CPU一加電,初始化(CS)=0FFFFH,(IP)=0,自動從FFFF:0單元開始執行程序。FFFF:0處有一條轉跳指令,CPU執行該指令后,轉去執行BIOS中的硬件系統檢測和初始化程序。
-
初始化程序將建立BIOS所支持的中斷向量,即將BIOS提供的中斷例程的入口地址登記在中斷向量表中。注意,對於BIOS所提供的中斷例程,只需將入口地址登記在中斷向量表中即可,因為它們是固化到ROM中的程序,一直在內存中存在。
-
硬件系統檢測和初始化完成后,調用int 19h進行操作系統的引導。從此將計算機交給操作系統控制。
-
DOS啟動后,除完成其他工作外,還將它所提供的中斷例程裝入內存,並建立相應的中斷向量。