orange's一个操作系统的实现--学习过程 第一章:a 最小的操作系统OS

--------------------全部都在windows环境下
需要准备软件工具
虚拟机Bochs (带有生成img文件的功能bximage.exe )   https://sourceforge.net/projects/bochs/files/bochs/

汇编语言编译器nasm   https://www.nasm.us/pub/nasm/releasebuilds/

读写磁盘工具dd.exe  Linux下有一个dd工具,用来直接读写磁盘。Windows下也有一个类似的工具,可以在如下的地址下载:http://www.chrysocome.net/dd

需要把工具路径都加入path

----------操作步骤
生成空白的镜像文件
使用汇编命令把源码生成汇编程序
把汇编程序写入到镜像文件
使用虚拟机Bochs,复制一份自带的虚拟机配置,加载镜像文件,查看结果

执行bximage.exe,选择fd,其他默认即可生成空白的镜像文件 a.img
nasm  boot.asm  -o  boot.bin 
dd  if=boot.bin  of=a.img  bs=512  count=1  conv=notrunc


--boot.asm

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 ; 结束标志


把a.img文件放到虚拟机下即可。效果如下:

orange's一个操作系统的实现--学习过程 第一章:a 最小的操作系统OS_第1张图片


你可能感兴趣的:(orang's)