汇编网首页登录博客注册
atel的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
  •  今天一个个性,明天一个个性,原来我没的个性。
  • 『姓名』:张杰                
  • 『性别』:男    『发送消息
  • 个人说明:
  • 详细信息『加为好友』
学习动态
最新留言
好友圈
文章收藏
友情链接

[2008-03-23 14:04] 检测题15.1

(1)仔细分析一下上面的int9中断例程,看看是否可以精简一下?
  其实在我们的int9中断例程中,模拟int指令调用原int9中断例程的程序段是可以精简的,因为在进入中

断例程后,IF和TF都已经置0,没有必要再进行设置了.对于程序段:
 pushf
 pushf
 pop ax
 and ah,11111100b
 push ax
 popf
 call dword ptr ds:[0]
 可以精简为:
 ________________pushf
 ________________call dword ptr ds:[0]
两条指令.
(2)仔细分析上面的程序中的主程序,看看有什么潜在的问题?
 在主程序中,如果在执行设置int9中断例程的段地址和偏移地址的指令之间发生了键盘中断,则CPU将转去
一个错误的地址执行,将发生错误.
   找出这样的程序段,改写它们,排除潜在的问题.
 mov word ptr es:[9*4],offset int9
 mov es:[9*4+2],cs

 应改为:
 cli
 mov word ptr es:[9*4],offset int9
 mov es:[9*4+2],cs
 sti
评论次数(2)  |  浏览次数(663)  |  类型(汇编作业) |  收藏此文  | 

[  app   发表于  2008-03-23 23:11  ]

很正确,博主快学完了,加油!

[  younggay   发表于  2008-03-24 09:57  ]

欧了!

 
 请输入验证码  (提示:点击验证码输入框,以获取验证码