When Do We Write Our Chinese OS ?
1.工欲善其事,必先利其器!
先下载需要的文件:虚拟机(用来运行你编译出来的系统),nasm(用来编译源码),notepad++,
虚拟机我用的是vmware,我这里有破解汉化版的,下载地址:http://pan.baidu.com/s/1i3Hw4gX,nasm我也有,下载地址http://pan.baidu.com/s/1gdKizWR,notepad++就不说了,工具有了就是安装,这都很简单,不说了。
2.写代码
在nasm的安装目录下创建一个.asm文件,举例为hello-os.img,添加如下代码:
org
07c00h
;
告诉编译器程序加载到 7c00处
mov ax , cs
mov ds , ax
mov es , ax
call DispStr ; 调用显示字符串例程
jmp $ ; 无限循环
DispStr :
mov ax , BootMessage
mov bp , ax ; es : bp = 串地址
mov cx , 16 ; cx = 串长度
mov ax , 01301h ; ah = 13 , al = 01h
mov bx , 000ch ; 页号为 0 ( bh = 0 ) 黑底红字 ( bl = 0Ch , 高亮 )
mov dl , 0
int 10h ; 10h 号中断
ret
BootMessage : db "Hello, OS world!"
times 510 - ( $ - $ $ ) db 0 ; 填充剩下的空间,使生成的二进制代码恰好为
; 512字节
dw 0xaa55 ; 结束标志
mov ax , cs
mov ds , ax
mov es , ax
call DispStr ; 调用显示字符串例程
jmp $ ; 无限循环
DispStr :
mov ax , BootMessage
mov bp , ax ; es : bp = 串地址
mov cx , 16 ; cx = 串长度
mov ax , 01301h ; ah = 13 , al = 01h
mov bx , 000ch ; 页号为 0 ( bh = 0 ) 黑底红字 ( bl = 0Ch , 高亮 )
mov dl , 0
int 10h ; 10h 号中断
ret
BootMessage : db "Hello, OS world!"
times 510 - ( $ - $ $ ) db 0 ; 填充剩下的空间,使生成的二进制代码恰好为
; 512字节
dw 0xaa55 ; 结束标志
然后保存,打开nasmpath.bat,运行nasm hello-os.asm -o hello-os.img命令
运行后会在你的nasm目录下生成一个hello-os.img文件。
3.使用虚拟机运行你的系统
打开虚拟机,点击创建新的虚拟机
记住在这一步的时候勾选稍后安装操作系统,然后就都选next。
创建好了之后点击编辑虚拟机设置
点击添加
然后添加软盘驱动器
勾选使用软盘映像,点击下一步
添加你之前编译好的img文件,也就是你的系统
然后保存,开启虚拟机,你会发现那鲜红的hello,OS world!
第一次写博客,难免会出错,如果发现,请及时告知,不喜勿喷。我写博客的目的只是为了帮助新手入门,我也刚会编译,其中的辛酸很痛苦。。。
抛砖引玉,希望中国能早日做出属于自己的OS!