鱼C论坛

 找回密码
 立即注册
查看: 5043|回复: 13

[已解决]关于中断过程的问题

[复制链接]
发表于 2019-6-25 12:58:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
王爽汇编书上说中断过程,如下:
1.取得中断类型码N;
2.pushf
3.TF=0,IF=0
4.push CS
5.push IP
6.IP=N*4,CS=N*4+2

我的问题是:触发中断的条件是TF与IF不为0,如果在第二步把标志寄存器都压入栈,TF与IF的值也会入栈,在执行完中断程序后,标志寄存器出栈TF或IF值为1,企不是又会引发中断?

最佳答案
2019-6-25 19:52:43
中断分两种,内中断和外中断
内中断就是处理器内部产生的中断
外中断就是处理器外部产生的中断
^_^


内部中断是不可屏蔽中断,不管tf和if状态是什么,都会执行中断处理程序

外部中断分可屏蔽中断和不可屏蔽中断
不可屏蔽中断无法屏蔽,一旦出现,处理器无条件执行中断处理程序

只有外部中断,并且是可屏蔽中断才能屏蔽,如何屏蔽?
这就要看if标志,if如果为0,处理器忽略外部中断请求
只有if为1,处理器才响应中断请求

tf和调试有关,如果tf为1,执行完一条指令就中断,执行中断处理程序,执行中断之前必须让tf为0,不然就在执行中断的第一条指令后又一次进入中断,一直这样下去,死循环

除法错误中断属于内部中断,不管tf和if是什么,一旦出现除法错误中断,处理器无条件执行中断处理程序
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-6-25 13:46:52 | 显示全部楼层

回帖奖励 +1 鱼币

首先要理解这两个寄存器的意思
跟踪标志(TF):当TF被设置为1时,CPU进入单步模式,所谓单步模式就是CPU在每执行一步指令后都产生一个单步中断。主要用于程序的调试。
中断标志(IF):决定CPU是否响应外部可屏蔽中断请求。IF为1时,CPU允许响应外部的可屏蔽中断请求。

所以当执行完中断以后,如果TF为1,那么会执行单步中断(单步中断也是中断的1种,所以很中断的过程一样)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-6-25 14:58:33 | 显示全部楼层

回帖奖励 +1 鱼币

首先你要明白,中断并不是由TF和IF引发的
TF和IF更类似于一个开关,TF和IF这个开关如果关闭了,那么中断源产生的中断信号就没办法通过这个开关到达处理器内部,处理器就没办法知道这个中断请求,同样也没办法处理这个中断
只有TF和IF这个开关打开,这样中断源产生的中断信号才能通过这个开关到达处理器内部,处理器才能知道有中断产生,才能处理这个中断请求

楼上已经说明了
准确来说这个开关是IF
TF和调试有关,如果不禁用TF,会导致无限循环
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2019-6-25 16:20:18 | 显示全部楼层
人造人 发表于 2019-6-25 14:58
首先你要明白,中断并不是由TF和IF引发的
TF和IF更类似于一个开关,TF和IF这个开关如果关闭了,那么中断源 ...

那么例如在执行除法错误中断前,TF和IF的值是多少?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-6-25 19:52:43 | 显示全部楼层    本楼为最佳答案   
中断分两种,内中断和外中断
内中断就是处理器内部产生的中断
外中断就是处理器外部产生的中断
^_^


内部中断是不可屏蔽中断,不管tf和if状态是什么,都会执行中断处理程序

外部中断分可屏蔽中断和不可屏蔽中断
不可屏蔽中断无法屏蔽,一旦出现,处理器无条件执行中断处理程序

只有外部中断,并且是可屏蔽中断才能屏蔽,如何屏蔽?
这就要看if标志,if如果为0,处理器忽略外部中断请求
只有if为1,处理器才响应中断请求

tf和调试有关,如果tf为1,执行完一条指令就中断,执行中断处理程序,执行中断之前必须让tf为0,不然就在执行中断的第一条指令后又一次进入中断,一直这样下去,死循环

除法错误中断属于内部中断,不管tf和if是什么,一旦出现除法错误中断,处理器无条件执行中断处理程序
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-6-26 10:05:48 | 显示全部楼层
人造人 发表于 2019-6-25 19:52
中断分两种,内中断和外中断
内中断就是处理器内部产生的中断
外中断就是处理器外部产生的中断

谢谢大佬孜孜不倦的回答
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-2 12:33:36 | 显示全部楼层

回帖奖励 +1 鱼币

学习中ing~~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-30 15:22:43 | 显示全部楼层

回帖奖励 +1 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-2-10 13:11:11 | 显示全部楼层

回帖奖励 +1 鱼币

支持
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-6-16 17:32:18 | 显示全部楼层

回帖奖励 +1 鱼币

学习一个
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-6-22 12:53:44 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-6-24 18:20:07 | 显示全部楼层

回帖奖励 +1 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-7-28 00:06:43 | 显示全部楼层

回帖奖励 +1 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-7-29 16:53:58 | 显示全部楼层

回帖奖励 +1 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-26 11:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表