• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >嵌入式开发 > 关于《一个操作系统的实现》里面一个可屏蔽中断的问题

关于《一个操作系统的实现》里面一个可屏蔽中断的问题

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-05

佚名通过本文主要向大家介绍了操作系统读者写者问题,操作系统理发师问题,操作系统ado有问题,操作系统理发店问题,操作系统常见问题等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题:关于《一个操作系统的实现》里面一个可屏蔽中断的问题
描述:

书中说:

外部可屏蔽中断的发生就受到两个因素的影响,只有当IF位为 1 ,并且 IMR 相应位为 0 时才会发生。

然后,书中的实现分别通过写入 ICW 1 来打开相应的 IMR 以及 sti 来使 IF 位为 1 ,打开了时钟中断。

我的问题就出现在书中的时钟中断程序 ClockHandler :

inc    byte [gs:((80*0+70)*2)]
mov    al, 20h
out    20h, al
iretd

我的问题是: 为什么时钟中断能够一直发生? ired 是什么作用 ? 为什么我去掉了后面的 jmp $ 出现了下面的问题

>>PANIC<< master: ICW1: single mode not supported

`


解决方案1:

我给你解答一下iretd的作用,和iret是一样的,表示中断返回。类似函数调用时的return。

网上的详细解答:
iretd
当一个中断服务程序执行完毕时,CPU将恢复被中断的现场,返回到引起中断的程序中。为了实现此项功能,指令系统提供了一条专用的中断返回指令。
该指令执行的过程基本上是INT指令的逆过程,具体如下:
◆、从栈顶弹出内容送入IP;
◆、再从新栈顶弹出内容送入CS;
◆、再从新栈顶弹出内容送入标志寄存器;
对80386及其以后的CPU,指令IRETD从栈顶弹出32位内容送入EIP。
中断和子程序调用之间有其相似和不同之处。它们的工作过程非常相似,即:暂停当前程序的执行,转而执行另一程序段,当该程序段执行完时,CPU都自动恢复原程序的执行。
它们的主要差异有:
◆、子程序调用一定是程序员在编写源程序时事先安排好的,是可知的,而中断是由中断源根据自身的需要产生的,是不可预见的(用指令INT引起的中断除外);
◆、子程序调用是用CALL指令来实现的,但没有调用中断的指令,只有发出中断请求的事件(指令INT是发出内部中断信号,而不要理解为调用中断服务程序);
◆、子程序的返回指令是RET,而中断服务程序的返回指令是IRET/IRETD。
◆、在通常情况下,子程序是由应用系统的开发者编写的,而中断服务程序是由系统软件设计者编写的。


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 关于《一个操作系统的实现》里面一个可屏蔽中断的问题

相关文章

  • 2017-06-05 我要做USB口与MCU的数据通讯,现装了windows2003DDK但是我不知如何用,有没有这方面的书籍。
  • 2017-06-05 设备对象与具体的物理设备关系?
  • 2017-06-05 蓝牙HC-06模块配对连接问题
  • 2017-06-17嵌入式开发实践经验秘诀
  • 2017-06-05 为什么我的程序debug正常,但是在片上运行不起来
  • 2017-06-05 串口编程小白求助。
  • 2017-06-05 mirror问题
  • 2017-06-05 为windows驱动程序制作exe安装程序
  • 2017-06-05 請問哪裡有介紹INF文件的資料和書籍呢?給個連接就可以了,謝謝
  • 2017-06-05 求通信协议参考书籍

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 如何在Windows驱动里使用API函数
    • 触摸屏驱动移植问题
    • 对于初学lua与cocos2dx结合做游戏,应该怎么起步呢
    • wm虚拟机下安装linux出现的问题,求大神帮忙解决啊。。。。
    • TCP/IP:在广域网(外网)上传输数据时会用到ARP协议吗?
    • 请问是否有什么工具软件可以随时抓取PCMCIA接口的数据
    • 关于USB摄象头的开发的基础问题
    • UCOSii和Bootloader
    • 急求usb20frowin2003的驱动程序
    • 请达人解答用C语言处理BMP图象的问题!急!

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有