在《汇编语言》第十五章中我们可能遇到这样的问题:程序运行正确,但是debug单步调试,却无法运行,修改int 9h中断例程入口地址的指令,虚拟模式下,debug提示指令无效,而在实模式下,则程序卡死。


      
这里我的看法如下:因为我们单步的时候,当设置9号中断偏移地址的指令执行后,这时段地址还没有进行相应的设置,而单步键入命令(如:t命令)的时候程序要调用键盘中断程序,这就导致程序转去一个错误的地址执行程序,这就造成了一种假象—程序卡死,其实这时只是键盘中断的入口地址不正确,导致键入的字符失去 响应,这样的话,如果我们要用debug调试程序,就需要用g命令跳过设置int 9中断入口地址的指令,使其连续设置9号中断入口地址,以避免上述问题的发生。也许你会有这样的迷惑(其实是我的迷惑),就是在设置9号中断入

口地址的时候我们已经通过cli屏蔽了键盘中断,这时应该不会响应9号中断啊?那我要反问一句,那你cli之后,为什么还能键入命令符?其实不难猜想,这是debug本身的问题,其内部实现上,在执行完一条指令后,应该有类似sti这样的指令执行,使其接受键盘中断,为下一条命令的输入提供前提条件。


        反思:我开始思考时,就陷入了一种思维怪圈,当时就想,为什么程序运行正确,单步运行就出错,难道单步过程中用到了9号中断?不对啊,明明通过指令屏蔽了键盘中断,如此反复,思索未果,就去想有没有其他的可能,想啊想,想啊想,各种分析,各种思考,就是想不明白,越想越觉得迷惑,几天过去了,又回到了问题的原点才算是终于想通了,问题的解决来自于头脑中一个突然的发问:屏蔽了键盘中断问断,怎么还能接受命令符?对这个问题的思索,才算是解决了问题。

一个想了好几天的问题——关于8086cpu自己编写9号中断不能单步的问题的更多相关文章

  1. Salt Stack 官方文档翻译 - 一个想做dba的sa - 博客频道 - CSDN.NET

    OSNIT_百度百科 Salt Stack 官方文档翻译 - 一个想做dba的sa - 博客频道 - CSDN.NET Salt Stack 官方文档翻译 分类: 自动运维 2013-04-02 11 ...

  2. 35.按要求编写Java程序: (1)编写一个接口:InterfaceA,只含有一个方法int method(int n); (2)编写一个类:ClassA来实现接口InterfaceA,实现int method(int n)接口方 法时,要求计算1到n的和; (3)编写另一个类:ClassB来实现接口InterfaceA,实现int method(int n)接口 方法时,要求计算n的阶乘(n

      35.按要求编写Java程序: (1)编写一个接口:InterfaceA,只含有一个方法int method(int n): (2)编写一个类:ClassA来实现接口InterfaceA,实现in ...

  3. 一个想法照进现实-《IT连》创业项目:聊聊IT连App是如何思考解决IT人员单身问题的

    前言: 根据最早我编写的IT联盟社区众筹计划书的思路方向:社交->资讯=>评级=>培训. 现在在实现第一个阶段中,而且这个阶段可能会走很久. 今天开文,主要是讲述一下,现在的版本为什 ...

  4. 一个想法照进现实-《IT连》创业项目:万事开头难

    前言: 之前是一个想法,现在已经进入创业阶段,所以这个系列的标题,改了. 众筹的事在今天也停止了. 7-9号会在深圳龙岗布吉参加一个风投对接的活动,今晚(6号)会出发. 因为:在深圳会呆几天,而且这个 ...

  5. 一个想法照进现实-《IT连》创业项目:三天的风投对接活动内幕分享

    前言: 话说出来创业的,都有一颗寻找风投的心,只因都有一个共同的特征:缺钱. 有的只是缺几十万,有的缺几百万,有的缺几千万,有的缺几个亿. 中国的市场,只要有需求,就有服务,只要有服务,就多了套路. ...

  6. 一个想法照进现实-《IT连》创业项目:关于团队组建

    前言: 从上一篇<三天的风投对接活动内幕分享>归来后,从中领悟了不少内涵. 之后暂停了找钱的想法,这些天也拒绝了不少想要参与众筹的同学. 目前主要精力放在以下三件事: 1:重新规划顶层设计 ...

  7. 一个想法照进现实-《IT连》创业项目:创业时该不该用新手程序员

    前言: 距离上一篇文章,转眼已然一个多月了,这段时间没出来和大伙汇报创业的进度,怪我了. 最近又感冒了,已经一个多星期了,还在感冒中,不过感冒也不能偷懒了,每天都有大把的事情等着我解决~~~ 不过今天 ...

  8. 一个想法照进现实-《IT连》创业项目:一个转折一个反思

    前言: 距离上一篇介绍IT连创业项目的文章,已经过去2个月了,没想到我竟然这么久没写文章向大伙汇报进度了,实在抱歉. 关于这事,我得好好反省,认真检讨,好好写文,哈. 今天主要是讲述一下最近创业的进展 ...

  9. 一个想法照进现实-《IT连》创业项目:聊聊最近两三事

    今天打算写一篇断流水式的作文,哈,不按常规的写格式文了. 话说创业到现在,也快近半年了,时间那是飘的一个字:快! 从设想的很多很远,到被人不断告知要单点突破:从美好的远景,到现实艰难的执行:创业更像是 ...

随机推荐

  1. 02/07/2106 @ 6:28am (UTC)

    <?php echo pow(2,32); 4294967296 http://www.unixtimestamp.com/index.php 4294967296 Is equivalent ...

  2. overloading

    Computer Science An Overview _J. Glenn Brookshear _11th Edition_C Many programming languages allow t ...

  3. Medusa: Gauges for JavaFX

    Medusa: Gauges for JavaFX https://community.oracle.com/docs/DOC-992746

  4. 【No.1】监控Linux性能25个命令行工具

    如果你的Linux服务器突然负载暴增,告警短信快发爆你的手机,如何在最短时间内找出Linux性能问题所在?通过以下命令或者工具可以快速定位 top vmstat lsof tcpdump netsta ...

  5. 基于vs2005以上版本Qt程序发布的注意事项(讲了manifest的问题)

    最近发现了一个非常恼人的程序deployment的问题,估计大家有可能也会遇到,特此memo. 问题的出现我觉得主要还是微软搞的花头太多, 一个不知所谓的manifest文件让本来简单的程序发布变得困 ...

  6. CentOS 6.3下PostgreSQL 的安装与配置

    一.简介 PostgreSQL 是一种非常复杂的对象-关系型数据库管理系统(ORDBMS),也是目前功能最强大,特性最丰富和最复杂的自由软件数据库系统.有些特性甚至连商业数据库都不具备.这个起源于伯克 ...

  7. Selenium2学习-033-WebUI自动化实战实例-031-页面快照截图应用之二 -- 区域截图

    我在之前的文章中曾给出浏览器显示区域截图的方法,具体请参阅 .或许,有些小主已经想到了,每次都获取整个显示区域的截图存储,那么经过一段时间后,所使用的图片服务器的容量将会受到极大的挑战,尤其是在产品需 ...

  8. 如何解决.NET Framework4.0的System.EnterpriseServices could not found 的问题

    我今天建基于.NET Framework4.0的webSite时报错 “System.EnterpriseServices, Version=4.0.0.0, Culture=neutral, Pub ...

  9. iOS系统自带正则表达式简单运用

    //组装一个字符串,把里面的网址解析出来 NSString *urlString = @"sfdshttp://www.baidu.com"; NSError *error; // ...

  10. 基础-训练营-day1~day5

    基础 大纲  变量:      声明.初始化.使用.命名  数据类型:      int.long.double.boolean.char.String  运算符:      赋值.算术.关系.逻辑  ...