鱼C论坛

 找回密码
 立即注册
查看: 5365|回复: 4

关于中断tf和if标志的疑问

[复制链接]
发表于 2017-12-23 01:38:13 | 显示全部楼层 |阅读模式

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

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

x
我又来找大神解惑了,真心求教
比如 int9中断例程:
(1). 取得中断类型码N;

(2). pushf

(3). 设置TF=0, IF=0

(4). push CS

(5). push IP

(6). (IP)=(N*4), (CS)=(N*4+2)

在中断最后要popf

那么popf后if的标志还是1,
这时候如果再有可屏蔽的外部中断,不是又要继续进入中断例程了?这个if=1就一直不管他么?还是说要手动cli

或者说这个if开始就是0,不处理一切可屏蔽中断,
       又或者if开始就是1,要处理一切可平补中断,

还有这个tf单步中断

(2). pushf

(3). 设置TF=0, IF=0

(4). push CS

(5). push IP

(6). (IP)=(N*4), (CS)=(N*4+2)
popf后tf=1,下一次又是单步,岂不是无限单步了?还是有什么别的机制,能让我想什么时候单步就单步中断,不想的时候就连续执行代码
请大神指点迷津

评分

参与人数 1荣誉 -5 鱼币 -5 贡献 +3 收起 理由
mmdn -5 -5 + 3 支持楼主!

查看全部评分

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

使用道具 举报

 楼主| 发表于 2017-12-23 13:56:44 | 显示全部楼层
快来大神

评分

参与人数 1荣誉 -5 鱼币 -5 贡献 +2 收起 理由
mmdn -5 -5 + 2 支持楼主!

查看全部评分

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

使用道具 举报

发表于 2018-1-2 17:08:31 | 显示全部楼层
首先你要理解的是 IF  和 TF 标志位;

IF:中断标志位(1为响应中断)   TF:单步执行标志位(1为单步执行)

当我们进入中断的时候 要把IF和TF都置零,IF:是因为 你已经进入了中断,就不能在响应别的中断了. TF:单步执行中断的程序也是由一条条的汇编代码组成的,如果不把单步执行去掉的话,则永远会进入到单步执行的中断中。

当我们执行完中断后,把之前的CS IP 和 标志位 恢复到没有进入中断前的样子。  
PS:在中断里是不会发生中断的(因为已经把中断标志位屏蔽了)。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-26 09:49:11 | 显示全部楼层
问题书中有明确的介绍:
CPU在执行完之后将进一步引发单步中断,中断处理的程序也是由一条条程序组成,如果TF入栈之前=1,那么将进入死循环。解决办法入进入中断处理程序之前,设置TF = 0.避免CPU在执行中断程序的时候发生单补中断。也就是说TF=0,IF=0的含义。
那么你的意思汇编代码应该是这样???
TF = 1、 IF = 1;(响应中断之前的寄存器状态)
(1)取得中断类型码N
(2)pushf(这里入栈寄存器包含TF = 1, IF = 1)
(3)TF = 0, IF = 0
(4)cs、ip入栈
(5)(ip) = (N*4), (cs) = (N*4+2)
popf(取出寄存器包含TF = 1, IF = 1,CS , IP)
这时候IF=1 所以如果有可屏蔽中断他就会继续进入中断?
这时候TF=1 所以就单步中断?
而你不想中断这些可屏蔽中断?
@人造人
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-6-25 13:32:37 | 显示全部楼层
理想小青年 发表于 2018-8-26 09:49
问题书中有明确的介绍:
CPU在执行完之后将进一步引发单步中断,中断处理的程序也是由一条条程序组成,如 ...

回答个问题还带着气?最后也没说明白,反而你成了提问题的了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-26 03:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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