. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->外中断
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  程序p280页的不能用T单步跟踪吗?  [待解决] 回复[ 3次 ]   点击[ 320次 ]  
283449186
[帖 主]   [ 发表时间:2009-03-30 08:29 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:2
注册日期:2009-02-25 13:24
mov word ptr es:[9*4],offset int9
      mov es:[9*4+2],cs
每次到这就出错,是键盘中断被改了,怎么设置if
才能单步跟踪,或者不可能实现?在DOS下操作的
283449186
[第1楼]   [ 回复时间:2009-03-30 11:57 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:2
注册日期:2009-02-25 13:24
检测15.1 (2)怎么样做?
crazyman
[第2楼]   [ 回复时间:2009-03-30 16:13 ]   [引用]   [回复]   [ top ] 
荣誉值:152
信誉值:3
注册日期:2008-01-24 21:26
嗯,在设置新中断向量地址的时候,如果发生中断就会出错,以为你修改了段地址,已中断,就根据现在的向量表调用中断例程了,那么此时调用的谁知道是什么啊。既不是你的例程也不是原来的例程。这个仔细看书,书后面的作业中有提示的。
还有,不要问什么该怎么做?首先你要自己分析和考虑,把你的想法说出,即使是错的。大家进行交流才能进步的。

15.1提示:题干的意思是说,有些操作是画蛇添足了,那么我们应该把那些基本上不用的操作去掉,保留最简单的形式。
yp12000
[第3楼]   [ 回复时间:2009-04-19 15:06 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-03-14 20:10
正确设置应该为
cli
mov word ptr es:[9*4],offset int9 
mov es:[9*4+2],cs 
sti
cli的作用是设置if=0,使cli和sti中间的2条指令不响应可屏蔽中断
为什么要这样设置呐?
我们假设你在mov word ptr es:[9*4],offset int9
指令执行后,按下键盘(当然这种几率是很小的,因为CPU运行速度很快.不过仍然是一种隐患)
那么只要按下键盘,就会执行int9中断,使cs和ip指向中断处理程序的入口地址
而cs和ip即不会指向系统原来的INT9中断例程(因为IP已经改变),也不会指向新安装的INT9中断例程(因为目前的CS指向系统原来的INT9中断例程)
所以,这个时候,CS:IP指向的是一个错误的地址
所以 要先cli,使之不响应可屏蔽中断-键盘中断
关键问题是 你在执行单步中断的时候,是按下键盘上的--T,然后按键盘上-回车
你一按键盘 就产生一个键盘中断  所以就。。。。。
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved