我编写了一个最小操作系统以在 nasm 中启动。
org 0x7C00 ;because the OS is loaded at address 0x7C00
bits 16 ;because we start in 16 bit mode
main:
hlt
.halt
jmp .halt
times 510-($-$$) db 0
dw 0AA55h
该目录如下所示:
OsDev
--Makefile
--src/
----main.asm
--build/
----main.bin
----main.img
----main_floppy.img
Makefile 如下所示:
ASM=nasm
SRC_DIR=src
BUILD_DIR=build
$(BUILD_DIR)/main_floppy.img: $(BUILD_DIR)/main.bin
cp $(BUILD_DIR)/main.bin $(BUILD_DIR)/main.img
truncate -s 1440k $(BUILD_DIR)/main_floppy.img
$(BUILD_DIR)/main.bin: $(SRC_DIR)/main.asm
$(ASM) $(SRC_DIR)/main.asm -f bin -o $(BUILD_DIR)/main.bin
但我明白这一点:
执行 qemu-system-x86_64 -fda build/main_floppy.img 的截图