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;
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)
getcwd(directory, 80);
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指令结束。
参考资料
最新修订时间:2023-06-14 10:03
目录
概述
基本信息
参考资料