中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-10-31 09:39
共 47,815 主题排行 / 349,930 发帖 / 今日 0 篇 / 48,290 会员排行
DOS开发编程 & 发展交流 (开发室) » 关于代码存放地址
可打印版本  1,321 / 4
第1楼 nhchmg 发表于 2008-11-09 07:23
新手上路 发帖 4 积分 14
关于代码存放地址
请问一代码运行在MBR之前,是通过PXE下载过来的,这段代码是HOOK一个中断,然后就读MBR,把控制权交给MBR,MBR会启动XP,请问这段代码该放在什么地方,才可以保证XP启动了,但仍然不会被覆盖,有点像grubdos
我曾试过把这段代码放在常规内存,然后用int 12去减少报告内存数,但是在运行NTLDR后,这段代码会失效.

[ Last edited by nhchmg on 2008-11-9 at 07:25 ]
第2楼 netwinxp 发表于 2008-11-09 11:17
高级用户 发帖 366 积分 741
在MBR之前运行那只能在BIOS了(比较安全的就是放到网卡上),XP并不使用实模式的BIOS中断,所以挂接BIOS中断对XP不起作用。
第3楼 nhchmg 发表于 2008-11-09 17:24
新手上路 发帖 4 积分 14
Originally posted by netwinxp at 2008-11-9 11:17:
在MBR之前运行那只能在BIOS了(比较安全的就是放到网卡上),XP并不使用实模式的BIOS中断,所以挂接BIOS中断对XP不起作用。

我是能过pxe下载过来的,我所说的存放位置是指地址,我现在放的地址是9000:100,但不知道什么原因,会有问题.另外我挂接的是int 13,就是XP也会用的,就是像无盘引导一样
第4楼 crazii 发表于 2008-11-11 14:01
初级用户 发帖 10 积分 22
"我现在放的地址是9000:100" 貌似在1M之内啊.
"然后用int 12去减少报告内存数" int 12h好像只能查询啊.你把int12h替换了?
第5楼 netwinxp 发表于 2008-11-12 05:14
高级用户 发帖 366 积分 741
Originally posted by nhchmg at 2008-11-9 17:24:
我是能过pxe下载过来的,我所说的存放位置是指地址,我现在放的地址是9000:100,但不知道什么原因,会有问题.另外我挂接的是int 13,就是XP也会用的,就是像无盘引导一样

NT内核的windows,仅仅在启动的最前面几个步骤使用INT 13H,进入OSLOADER以后就使用磁盘驱动而不会再去使用实模式的INT 13H了。
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023