首先需要一个汇编编译器,Windows下可用NASM,Linux下可用as86和ld86
编译汇编代码
++++++++++++++boot.asm begin ++++++++++++++++++ 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) 黑底红字(b1 = 0Ch,高亮) mov dl,0 int 10h ret BootMessage: db "Hello, OS world!" times 510-($-$$) db 0 ;填充剩下的空间,使生成的二进制代码 ;为512字节 dw 0xaa55 ;结束标志 ++++++++++++++boot.asm end++++++++++++++++++
编译生成“系统”
Windows:
nasm boot.asm -o boot.bin
Linux:
编译:
as86 -0 -a -o boot.o boot.asm
连接:
ld86 -0 -s -o boot.bin boot.o
boot.bin就是我们要的操作系统
写入引导
dd命令可写入系统到指定分区,Windows下需要下载"dd for window"
命令参考:Linux 启动盘命令
参考: