鱼C论坛

 找回密码
 立即注册
查看: 2285|回复: 2

汇编语言的int指令和一段安全的空间?

[复制链接]
发表于 2012-3-23 18:29:56 | 显示全部楼层 |阅读模式
5鱼币
看到了int指令
有一个是执行了EXE程序会把代码写到安全的空间上
为什么写上去之后 程序关闭了.那些玩意不跟着释放呢? 是不是因为那段空间的影响?

int 7c
是不是 取到 7c*4   7c*4+2  内存里面的数据作为cs ip地址呢?
还有 写入的代码 是不是不可以超过那几百个字节?

问题我都讲不清楚了郁闷死咯
希望能理解理解

最佳答案

查看完整内容

程序发生了中断,就会去中断向量表查询中断处理程序,由于中断向量表位于0:0--0:3E8h(我也记不太清具体的值了),每个中断向量占4个字节,低字节存放中断处理程序的偏移地址,高字节存放中断处理程序的段地址,而且遵循一定的规律,比方说,当发生7c中断的时候,系统就会去查中断向量处理程序的地址,而保存处理程序地址的空间正好位于7c*4 和 7c *4 + 2 这2块双字节内存中,7c * 4 保存处理程序的偏移地址,7c*4+2保存的是处理程序 ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-3-23 18:29:57 | 显示全部楼层
本帖最后由 wAterLoo 于 2012-3-23 23:05 编辑

程序发生了中断,就会去中断向量表查询中断处理程序,由于中断向量表位于0:0--0:3E8h(我也记不太清具体的值了),每个中断向量占4个字节,低字节存放中断处理程序的偏移地址,高字节存放中断处理程序的段地址,而且遵循一定的规律,比方说,当发生7c中断的时候,系统就会去查中断向量处理程序的地址,而保存处理程序地址的空间正好位于7c*4 和 7c *4 + 2 这2块双字节内存中,7c * 4 保存处理程序的偏移地址,7c*4+2保存的是处理程序的段地址,然后CS把7c*4+2的值赋给cs,7c*4的值赋给ip,这是系统就直接执行中断处理程序了
至于第一个问题,如果你的中断处理程序位于你自己的程序,你的程序退出的时候是可以自动销毁的,但是如果位于想程序之外的空间,是无法销毁,除非你把dos退了 - - 不过这涉及到虚拟模式的知识,这里只是稍微提下
希望对你有所帮助
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-3-25 10:49:17 | 显示全部楼层
原来是这样啊。。感谢感谢哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-19 22:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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