8086cpu在中断响应周期获取中断类型号有几种方法
答案:3 悬赏:0 手机版
解决时间 2021-11-08 09:25
- 提问者网友:两耳就是菩提
- 2021-11-07 20:30
8086cpu在中断响应周期获取中断类型号有几种方法
最佳答案
- 五星知识达人网友:第幾種人
- 2021-11-07 21:59
8086CPU的中断系统具有256个中断,每个中断用一个唯一的中断向量号标识。向量号也称为矢量号或类型号,它用一个字节表示:0 ~ 255,对应256个中断。8086的中断可以分成外部中断和内部中断两类。
(1)外部中断
外部中断是来自8086CPU之外的原因引起的程序中断。它又分成两种情况:
· 可屏蔽中断——外部的这个中断请求可以在CPU的内部被屏蔽掉,即CPU可以控制它是否引起程序中断。标志寄存器中的中断允许标志IF就是用于控制可屏蔽中断的。
· 非屏蔽中断——外部的这个中断请求不能在CPU的内部被屏蔽,CPU必须执行它的处理程序。8086为非屏蔽中断分配了中断向量号02。
(2)内部中断
内部中断是由于8086CPU内部执行程序引起的程序中断。它又分成多种情况:
· 除法错中断——在执行除法指令时,若除数为0或商超过了寄存器所能表达的范围,则产生除法错中断。8086为它分配的向量号为0。
· 指令中断——执行中断调用指令INT n就产生指令中断,也称为软件中断,它的向量号就是n。
INT n指令为2字节指令(机器码为11001101 —n—,第2个字节就是中断向量号n),但向量号为3的指令中断(INT 3)是1字节指令(11001100),较特殊,常用做程序调试的断点中断。
调试程序DEBUG中的G命令就是利用断点中断(3号中断)中止被调试程序的。使用DEBUG调试程序时,如果在程序段最后加上一条INT 3指令,就可以停止程序运行,而不必设置断点了。
· 溢出中断——在执行溢出中断指令INTO时,若溢出标志OF为1,则产生溢出中断。它的向量号为4。
· 单步中断——若单步标志TF为1,则在每条指令执行结束后都产生单步中断。它的向量号为1。
调试程序DEBUG中的T命令就利用了单步中断。
(1)外部中断
外部中断是来自8086CPU之外的原因引起的程序中断。它又分成两种情况:
· 可屏蔽中断——外部的这个中断请求可以在CPU的内部被屏蔽掉,即CPU可以控制它是否引起程序中断。标志寄存器中的中断允许标志IF就是用于控制可屏蔽中断的。
· 非屏蔽中断——外部的这个中断请求不能在CPU的内部被屏蔽,CPU必须执行它的处理程序。8086为非屏蔽中断分配了中断向量号02。
(2)内部中断
内部中断是由于8086CPU内部执行程序引起的程序中断。它又分成多种情况:
· 除法错中断——在执行除法指令时,若除数为0或商超过了寄存器所能表达的范围,则产生除法错中断。8086为它分配的向量号为0。
· 指令中断——执行中断调用指令INT n就产生指令中断,也称为软件中断,它的向量号就是n。
INT n指令为2字节指令(机器码为11001101 —n—,第2个字节就是中断向量号n),但向量号为3的指令中断(INT 3)是1字节指令(11001100),较特殊,常用做程序调试的断点中断。
调试程序DEBUG中的G命令就是利用断点中断(3号中断)中止被调试程序的。使用DEBUG调试程序时,如果在程序段最后加上一条INT 3指令,就可以停止程序运行,而不必设置断点了。
· 溢出中断——在执行溢出中断指令INTO时,若溢出标志OF为1,则产生溢出中断。它的向量号为4。
· 单步中断——若单步标志TF为1,则在每条指令执行结束后都产生单步中断。它的向量号为1。
调试程序DEBUG中的T命令就利用了单步中断。
全部回答
- 1楼网友:刀戟声无边
- 2021-11-07 23:07
考试题吧?是不是微机接口啊?
- 2楼网友:上分大魔王
- 2021-11-07 22:54
通过数据总线将中断类型好传递给cpu
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯