首页 Soft PlugIn RAN乱 Dev开发 Info资料 English WAP 留言 登陆 注册
-
Posted by Yippee | 评论(0) | 引用(0) | 阅读3860次
WINDOWS下自己制作操作系统引导

自己动手写操作系统(一) 作者:伊梅 本文选自:开放系统世界——赛迪网 2002年10月10日 首先看到这个,但是这个是需要LINUX下的一些工具,又找了找,发现这个 走进程序世界的田园——引导扇区释疑

基本按照他的步骤和代码,但是代码修改了一下,步骤改进了一下:由于他的排版问题,有些编译通过不了

1、找个文本编辑器,输入

org07c00h; 告诉编译器程序加载到7c00处
mov ax, 0b800h
mov es, ax; 设置 es 以便直接写显存
mov byte [es:0], 'a'; 在显存第一个字节写入字符‘a’
mov byte [es:1], 0ch; 在显存第二个字节写入十六 进制值C,表示黑底红字
jmp $; 无限循环
times 510-($-$$) db 0; 填充剩下的空间,使生成的 二进制代码恰好为512字节
dw 0aa55h; 引导扇区需要以55AA结束

2、下载NASM http://sourceforge.net/projects/nasm

输入NASM BOOT.ASM,得到BOOT文件http://www.shengfang.org/

3、按照他的做法是找个软盘,写个程序,http://www.shengfang.org/但是我觉得这样太麻烦了。

找了一个软盘虚拟程序,virtual floppy disk,但是没有试验,因为我又想到了一个简单的办法

VMWARE和VPC都会带有一个虚拟启动软盘,你也可以用HDCOPY或者WINIMAGE等软件制作一个IMG文件。

然后用二进制编辑器ULTRAEDIT编辑该IMG软件,当然需要先复制一个备份比较安全。其实也可以用WINHEX直接编写软盘。http://www.shengfang.org/

不过我用ULTRAEDIT好像不能复制粘贴十六进制数据,因此用了一个最土的方法

DOS下: COPY /B BOOT/B+PWIN98.IMG/B WW/B得到一个十六进制的混合文件,然后再用ULTRAEDIT删除掉0X200-0X400之间的数据。不过好像删除也不能用,我用的是CUT剪切

然后把这个文件用VMWARE或者VPC导入A盘 Connectix Virtual PC 载入映象文件。启动后就可以看到效果了。http://www.shengfang.org/

不过我估计应该可以直接写一个1.44M的十六进制文件即可,需要1,474,560 字节,也就是说 写入 WRITEFILE BOOT 的512字节后,后面再补充,应该是可以的。

WRITEFILE也可以直接写软盘,主要是CREATEFILE函数要打开 \\\\.\A: 设备,我用WINOBJ查看之后,觉得应该也可以打开\device\floppy0也是可以的。

总结了这么多,WINDOWS下也可以方便的使用各种方法自己试验操作系统引导了。329

d:\>debug boot.bin
-w 100 0 0 1
-q


字体:

Permanant URI永久地址 http://www.shengfang.org/blog/p/windows0x55aa.php
Trackback URI引用地址 http://www.shengfang.org/blog/tb.php?tb_id=1114574944

2005年4月27日12:09星期三  [Dev开发] 追踪此文的RSS
提示:
此文还没有评论。

称呼:    登陆   注册
   不注册,但记住我的信息
邮件:
(非必须)
评论: [UBB代码帮助]
粗体 斜体 下划线 链接 水平线 引用



验证码: 请输入你看见的数字
关闭UBB      提交时自动将内容复制到剪贴板

公告
Fire and Motion!

统计信息
[Yippee]||[统计]||日志:1790
在线: 12||用户: 2562 [列表]
今日:2381||到访:2671880
Rss:838499||评论:1584

最新日志

最新评论

友情链接

日历

最新引用

搜索

归档

杂项
Get RSS Feed (Version 2.0)
Get Atom Feed (Version 0.3)
编码:  UTF-8