鱼C论坛

 找回密码
 立即注册
查看: 2662|回复: 3

关于中断机制

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

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

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

x
以0号中断为例,当发生除法溢出时,8086CPU是如何知道这个中断是0号中断并转去执行中断服务程序的?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-1-26 07:12:38 | 显示全部楼层
首先我们来修正一个概念:

中断:中断是指来自CPU执行指令以外的事件发生后,处理机暂停正在运行的程序,转去执行处理该事件的程序的过程。

异常:异常是指源自CPU执行指令内部的事件发生后,处理机暂停正在运行的程序,转去执行该事件的过程。

区别:广义的中断包括中断和异常,统一称为中断。狭义的中断和异常的区别在于是否与正在执行的指令有关,中断可以被屏蔽,异常不能被屏蔽,一旦出现应立即处理。


异常是指源自CPU执行指令内部的事件发生后,处理机暂停正在运行的程序,转去执行该事件的过程。

被零除异常(INT 0),是优先级最高的内部异常。

异常是CPU在执行指令期间检测到不正常的或非法的条件所引起的。异常与正执行的指令有直接的联系。当发生这些情况时,指令就不能成功完成。软中断指令“INT n”和“INTO”也归类于异常而不称为中断,这是因为执行这些指令产生异常事件。

CPU识别多种不同类别的异常,并赋予每一种类别以不同的中断向量号。异常发生后,处理器就像响应中断那样处理异常。即根据中断向量号,转相应的中断处理程序。把这种中断处理程序称为异常处理程序可能更合适。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-1-26 10:50:38 | 显示全部楼层
行客 发表于 2019-1-26 07:12
首先我们来修正一个概念:

中断:中断是指来自CPU执行指令以外的事件发生后,处理机暂停正在运行的程序 ...

关于中断和异常,在王爽的汇编语言中,应该是没有做区分,为了照顾初学者,谢谢你的解释,我对于中断的理解更全面和深入。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-30 13:57:32 | 显示全部楼层
怎么说那,就是有个消息机制吧,当CPU执行出现了错误就会出现异常消息,会到异常表里去匹配是什么异常,然后做对应的异常处理。
应该是这么个流程
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-7-7 18:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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