複製鏈接
請複製以下鏈接發送給好友

intr

鎖定
intr是函數名,用於改變軟中斷接口。接受可屏蔽中斷請求。輸入,電平觸發,高電平有效。
中文名
intr
屬    性
函數名
功 能
改變軟中斷接口
用 法
void int

目錄

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;
}

intrINTR

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指令結束。