ArcherJhon 发表于 2012-3-23 18:29:56

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

看到了int指令
有一个是执行了EXE程序会把代码写到安全的空间上
为什么写上去之后 程序关闭了.那些玩意不跟着释放呢? 是不是因为那段空间的影响?

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

{:5_107:}问题我都讲不清楚了郁闷死咯
{:5_111:}希望能理解理解

wAterLoo 发表于 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退了 - - 不过这涉及到虚拟模式的知识,这里只是稍微提下
希望对你有所帮助

ArcherJhon 发表于 2012-3-25 10:49:17

原来是这样啊。。感谢感谢哈
页: [1]
查看完整版本: 汇编语言的int指令和一段安全的空间?