momo zone

调核人的blog

关于flag寄存器中IF标志的疑惑

看二手资料不如看一手资料这句话是太正确了,看了intel 手册的3卷A ,发现之前对中断屏蔽问题有一些误区,现在总结一下吧。
 
 IF=1表示允许,IF=0 表示禁止。关键是禁止和允许什么中断。
其实IF仅影响到cpu intr引脚接受到的可屏蔽硬件中断。也就是说不可屏蔽中断(NMI),处理器产生的异常和软中断(int)均不受影响。看下图一目了然:
 
 
 
当使用中断门处理中断时,IF标志会被清除,也就可以禁止可屏蔽硬件中断。但如果通过陷阱门处理的话则,IF标志不会被清除。下图应该是使用中断门的情况:
 
 
 
Advertisements

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Google+ photo

You are commenting using your Google+ account. Log Out / 更改 )

Connecting to %s

%d 博主赞过: