intr

intr是函式名,用於改變軟中斷接口。

基本信息

函式名: intr

功 能: 改變軟中斷接口

用 法: void intr(int intr_num, struct REGPACK *preg);

程式例:

#include

#include

#include

#include

#define CF 1 /* Carry flag */

int main(void)

{

char directory[80];

struct REGPACK reg;

printf("Enter directory to change to: ");

gets(directory);

reg.r_ax = 0x3B << 8; /* shift 3Bh into AH */

reg.r_dx = FP_OFF(directory);

reg.r_ds = FP_SEG(directory);

intr(0x21, ®);

if (reg.r_flags & CF)

printf("Directory change failed\n");

getcwd(directory, 80);

printf("The current directory is: %s\n", directory);

return 0;

}

INTR

INTR接受可禁止中斷請求。輸入,電平觸發,高電平有效。在8086中,標誌暫存器EFLAGS中的IF標誌決定是否禁止可禁止中斷請求。

外部硬體在通過INTR發出中斷請求信號的同時,還要向處理器給出一個8位的中斷向量。處理器在 回響可禁止中斷請求時,讀取這個由外部硬體給出的中斷向量號。處理器對這箇中斷向量號並沒有 規定。但在具體的微機系統中,系統必須通過軟體和硬體的配合設定,使得給出的這箇中斷向量號 不僅與外部中斷源對應,而且要避免中斷向量號使用衝突情況的出現。可程式中斷控制器晶片8259A可 配合80386工作,能夠根據設定向處理器提供上述中斷向量號,還能處理中斷請求的優先權。每 個8259A晶片可以支持8路中斷請求信號,如果使用9個8259A晶片(一個主片,8個從片),就可使80386在 單個引腳INTR上接受多達64箇中斷源的中斷請求信號。

處理器不禁止來自NMI的中斷請求。處理器在回響NMI中斷時,不從外部硬體接收中斷向量號。與8086/8088一樣,在80386中,不可禁止中斷所對應的中斷向量號固定為2。為了不可禁止中斷的 嵌套,每當接受一個NMI中斷,處理器就在內部禁止了再次回響NMI,這一禁止過程直到執行中斷返回指令IRET後才結束。所以,NMI處理程式應以IRET指令結束。

相關詞條

相關搜尋

熱門詞條

聯絡我們