阅读:1429回复:6
怎么从dos的640k内存中挖取出一部分?(汇编)
最近有个项目需要在int13中断里开个buffer,但int13是不允许直接这样做的,有人说可以在初始化时从dos的640k内存中挖取一部分,不知有谁知道具体该怎么做?
|
|
沙发#
发布于:2003-04-17 10:42
通过打补丁不行吗?生成一个TSR程序,让INT 13H指向该程序,再由该程序指向原Int 13h.
|
|
板凳#
发布于:2003-03-25 15:30
注意!你必须在DOS启动前就修改那个值!不然不起作用.你的代码可以写在系统盘的引导扇区里.确保你的程序是最先运行的.
|
|
地板#
发布于:2003-03-25 10:23
那里有这方面的资料? 去买本《DOS/BIOS大全》之类的书看看。或参考一下十年前的经典病毒原码,就是那种感染后常规内存减少的。。STONE大概是吧,还有2708 [编辑 - 3/25/03 by redsugar] |
|
地下室#
发布于:2003-03-25 09:29
那里有这方面的资料?
|
|
5楼#
发布于:2003-03-24 20:24
在0040:0000保存着BIOS信息。其中有一处记载着基本内存的大小。你可以通过改动它可以在基本内存的顶部获得一段空间。之后,没有人在会使用那段空间了。很多DOS病毒驻留内存都是这样做的。 有一段历史了~~~ :P |
|
|
6楼#
发布于:2003-03-24 17:44
在0040:0000保存着BIOS信息。其中有一处记载着基本内存的大小。你可以通过改动它可以在基本内存的顶部获得一段空间。之后,没有人在会使用那段空间了。很多DOS病毒驻留内存都是这样做的。
前提是你必须是在纯DOS下。这年头,没有人用这个了。 |
|