内中断
内中断
1.0 简介
- 中断时CPU处理外部突发事件的重要技术
- 它能使CPU在运行过程中对外部事件发出的中断请求进行处理,处理后又返回断点,继续进行CPU原来的互作
- 引起中断的原因叫做中断源,根据中断源的不同,可以把中断分为硬件中断和软件中断
- 硬件中断又可以分为外部中段和内部中断两类
- 外部中段一般是指由计算机外设发出的中断请求:如:鼠标,键盘,打印机 ,外部中断是可以屏蔽的,可以利用中断控制器屏蔽这些外部设备的中断请求
- 内部中断是指硬件出错,如:(停电 奇偶校验错 或者是运算出错,除数为零,溢出等)内部中断是不可屏蔽的中断
- 软件中断不是真正的中断,int 21H等都是软件中断
- CPU为了处理并发的中断请求,规定了优先权,中段优先权从高到低是
- 除法错 溢出中断 软件中断
- 不可屏蔽中断
- 可屏蔽中断
- 单步中断
1.1 中断处理程序
- CPU设计者必须在中断信息和其处理程序的入口地址之间建立某种连续,是CPU根据中断程序可以找到要执行的处理程序
- 比如cpu根据中断类型码4,就可以找到4号中断处理程序
- 可随之而来的是,若要定位中断处理程序,需要知道他的段地址和偏移地址,而一个中断类型码为一个字节,如何的得到中断处理程序的段地址和偏移地址尼?
- 这里就要引用“中断向量表”。
1.2 中断向量表
- CPU用8位的中断类型码中国中断向量表找到相应中断处理程序的入口地址
- 中断向量表在内存中表示,其中存放256个中断源所对应的中断处理程序的入口
- 对于8086PC中断向量表是存放在内存地址为0处
- 从内存0000:0000~~0000:03ff的1024个字节存放这中断向量表
1.3 中断过程
- 找到中断向量表中的中断处理程序入口,用它设置CS:IP,使CPU执行中断处理程序
- 8086中断过程
- 获得中断类型码
- 标志寄存器的值入栈
- 设置标志寄存器的第8为TF和第九位IF的值为0
- CS入栈
- IP入栈
- 在内存中读取出中断处理程序的入口地址 设置CS:IP
- iret通常和硬件自动完成中断程序配合使用
- iret用汇编来表示
- pop ip
- pop cs
- popf
1.4 除法错误中断处理
1.5 单步中断
1.6 影响中断的特殊情况
1.7 int 指令
1.8 bios和dos中断处理程序的安装过程
- 略
1.9 端口
2.0 shl和shr指令
- 逻辑位移指令
- shl 功能
- 将一个寄存器或内存单元的数据向左移位
- 将最后移出的一位写入CF中
- 最低用0填充
- 如果移动位数大于1的话,将移动的位数放在CX中
- shr 相反功能 -----
__EOF__

本文作者:Immortal-mode
本文链接:https://www.cnblogs.com/immortal-mode/p/14106231.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/immortal-mode/p/14106231.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!