使用自制的最低限度操作系统从 qemu 启动

使用自制的最低限度操作系统从 qemu 启动

我编写了一个最小操作系统以在 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 的截图

执行 qemu-system-x86_64 -fda build/main_floppy.img 的屏幕截图

相关内容