说明
本文为b站从零开发操作系统的实验,使用deepinv20系统
mbr.asm
编写启动boot.asm
org 7c00h; 告诉编译器程序加载到7c00处
mov ax,cs
mov ds,ax
mov es,ax
call Disp;调用显示字符串例程
jmp $
Disp:
mov ax,BootMsg
mov bp,ax
mov cx,16
mov ax,01301h
mov bx,000ch
mov dl,0
int 10h
BootMsg: db "Hello,OS World!"
times 510 - ($-$$) db 0;将0这个字节重复510-($-$$)遍$:本行地址;$$:程序开地址;
dw 0xaa55;固定结尾
创建iso
nasm -f bin -o boot.bin boot.asm #编译
dd if=/dev/zero of=floppy.img bs=1024 count=1440 #创建空img
dd if=boot.bin of=floppy.img seek=0 bs=512 count=1 conv=notrunc #将程序写入img
mkdir iso
cp floppy.img iso/
genisoimage -quiet -V 'MYOS' -input-charset iso8859-1 -o myos.iso -b floppy.img -hide floppy.img iso/ #创建iso文件
用VitrualBox加载iso文件
https://www.bilibili.com/video/BV18K411w7Z2?p=2
https://stackoverflow.com/questions/34268518/creating-a-bootable-iso-image-with-custom-bootloader