请输入您要查询的百科知识:

 

词条 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, &reg;);

if (reg.r_flags & CF)

printf("Directory change failed\");

getcwd(directory, 80);

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

return 0;

}

INTR

INTR接受可屏蔽中断请求。在80386中,标志寄存器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指令结束。

随便看

 

百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2025/1/31 21:02:41