中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-01 04:43
中国DOS联盟论坛 » DOS开发编程 & 发展交流 (开发室) » 关于代码存放地址 查看 1,054 回复 4
楼 主 关于代码存放地址 发表于 2008-11-09 07:23 ·  中国 四川 成都 电信
新手上路
积分 14
发帖 4
注册 2008-11-08 12:57
17年会员
UID 130369
性别 男
状态 离线
请问一代码运行在MBR之前,是通过PXE下载过来的,这段代码是HOOK一个中断,然后就读MBR,把控制权交给MBR,MBR会启动XP,请问这段代码该放在什么地方,才可以保证XP启动了,但仍然不会被覆盖,有点像grubdos
我曾试过把这段代码放在常规内存,然后用int 12去减少报告内存数,但是在运行NTLDR后,这段代码会失效.

[ Last edited by nhchmg on 2008-11-9 at 07:25 ]
2 发表于 2008-11-09 11:17 ·  中国 福建 厦门 电信
高级用户
★★★
积分 741
发帖 366
注册 2007-07-25 19:11
19年会员
UID 94024
性别 男
状态 离线
在MBR之前运行那只能在BIOS了(比较安全的就是放到网卡上),XP并不使用实模式的BIOS中断,所以挂接BIOS中断对XP不起作用。
3 发表于 2008-11-09 17:24 ·  中国 四川 成都 电信
新手上路
积分 14
发帖 4
注册 2008-11-08 12:57
17年会员
UID 130369
性别 男
状态 离线
Originally posted by netwinxp at 2008-11-9 11:17:
在MBR之前运行那只能在BIOS了(比较安全的就是放到网卡上),XP并不使用实模式的BIOS中断,所以挂接BIOS中断对XP不起作用。

我是能过pxe下载过来的,我所说的存放位置是指地址,我现在放的地址是9000:100,但不知道什么原因,会有问题.另外我挂接的是int 13,就是XP也会用的,就是像无盘引导一样
4 发表于 2008-11-11 14:01 ·  中国 上海 电信
新手上路
积分 16
发帖 8
注册 2008-09-06 13:44
17年会员
UID 124948
性别 男
状态 离线
"我现在放的地址是9000:100" 貌似在1M之内啊.
"然后用int 12去减少报告内存数" int 12h好像只能查询啊.你把int12h替换了?
5 发表于 2008-11-12 05:14 ·  中国 福建 厦门 电信
高级用户
★★★
积分 741
发帖 366
注册 2007-07-25 19:11
19年会员
UID 94024
性别 男
状态 离线
Originally posted by nhchmg at 2008-11-9 17:24:
我是能过pxe下载过来的,我所说的存放位置是指地址,我现在放的地址是9000:100,但不知道什么原因,会有问题.另外我挂接的是int 13,就是XP也会用的,就是像无盘引导一样

NT内核的windows,仅仅在启动的最前面几个步骤使用INT 13H,进入OSLOADER以后就使用磁盘驱动而不会再去使用实模式的INT 13H了。
论坛跳转: