需要准备的软件:
1.汇编编译器NASM
2.虚拟机软件Vmware
3.Ubuntu Linux
4.微型FTP服务器(方便从虚拟机里的Linux向宿主机系统Windows传输文件)
step1:
进入到虚拟机里的Ubuntu Linux下,使用vim编辑工具输入如下代码:
org 07c00h ;告诉编译器程序加载到07c00h处
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 = 13h,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 ;引导程序结束标志
step2:
使用NASM编译代码文件,在终端中输入:nasm boot.asm -o boot.bin
生成img文件: dd conv=sync if=boot.bin of=boot.img bs=1440k count=1
step3:
将文件从虚拟机中通过FTP传输到Windows下:
step4:
使用vmware添加一个新的虚拟机
单击定制硬件
关闭后点完成,创建虚拟机完毕
step5:
运行创建的虚拟机
至此,操作系统的引导程序编写完毕!
参考资料: 《ORANGE’S:一个操作系统的实现》