自己动手写操作系统(一) 作者:伊梅 本文选自:开放系统世界——赛迪网 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.yippeesoft.com/

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

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

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

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

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

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

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

不过我估计应该可以直接写一个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

历史博文

标签:,
四月 27, 2005 at 12:09 下午 by yippee 1,039 次
Category: Dev
Tags: ,