鱼C论坛

 找回密码
 立即注册
查看: 1616|回复: 5

在学了鱼老师的中断后我有这样的疑问

[复制链接]
发表于 2013-11-4 19:31:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
我们写出来的放在0:200H的代码,更改了7ch的中断向量表, 编译运行通过后,我想再编另外的程序调用7ch的中断,发现报错了,0:200H不是一段安全的内存么,为什么存放在这个里面的数据没有了,我们写的中断的程序只能在其程序内部使用么?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-11-6 09:50:10 | 显示全部楼层
偶看见美女 直接闪过来了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-11-6 11:50:04 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-11-8 21:30:38 | 显示全部楼层
我的理解是我们现在的编程环境是windows,每次我们调用debug或者使用16位汇编,windows都会为我们模拟出来一个DOS环境(安全的虚拟8086模式)来运行。虽然我们在程序中修改了中断向量表,但是两次运行时的DOS环境并非同一个DOS环境(每一次运行会模拟出一个新的)。为了验证我的猜想,我打开了两个debug。在一个debug中修改了0200:0地址的内存内容为55AA,在另一个debug中查看时发现内容并不是55AA,说明他们是不同的环境。windows只是为了兼容DOS和Win16程序才建立了这种模拟环境。毕竟windows不会让程序真的有权限直接修改计算机,而且windows下的中断向量表并不是从0000:0开始(进一步说明这是个模拟环境)。
但是这仅仅是我学习了win32汇编后的猜想。感觉能说通一些问题。求大神指点~~~{:1_1:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-11-9 10:01:22 | 显示全部楼层
yinyuepingguo 发表于 2013-11-8 21:30
我的理解是我们现在的编程环境是windows,每次我们调用debug或者使用16位汇编,windows都会为我们模拟出来一 ...

看懂了  谢谢   我按照你说的  在同一个DOS下运行了自己编写的中断  成功了  用不同的窗口就不行  果然如大神所说啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-11-9 10:34:40 | 显示全部楼层
忘掉自私非爱人 发表于 2013-11-9 10:01
看懂了  谢谢   我按照你说的  在同一个DOS下运行了自己编写的中断  成功了  用不同的窗口就不行  果然如 ...

哈哈,我之前的理解也不完全对,又试了一次,感觉理解的更准确了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-28 19:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表