Boot Sector - Hello world

时间:2022-08-04 23:24:04

1. code

    bits
org 7c00h
mov ax, cs
mov ds, ax
mov es, ax
call DispStr
jmp $
DispStr:
mov ax, BootMessage
mov bp, ax
mov cx,
mov ax, 01301h
mov bx, 000ch
mov dl,
int 10h
ret
BootMessage:
db "Hello, OS world!"
times -($-$$) db
dw 0xaa55

2. 编译成bin文件

nasm -f bin boot.asm -o boot.bin

3.运行

1) qemu

qemu-system-i386 boot.bin

2) 虚拟机从floppy启动

dd if=/dev/zero of=floppy.img bs=512 count=2880
dd status=noxfer conv=notrunc if=boot.bin of=floppy.img

vmware创建一个裸虚拟机,给虚拟机添加设备"Floppy Drive", Connection设置为"Use a floppy image", 文件路径选为floppy.img的路径,启动虚拟机。

3) usb启动

插入U盘,假设U盘对应的设备文件为/dev/sdb1

dd if=boot.bin of=/dev/sdb1

重起电脑,使其从U盘启动。