Pritam Zope 和 theMike97 在 Youtube 上有关于从头开始编写操作系统的精彩教程。theMike97 有一个关于编写自己的引导加载程序的 loong 系列,Pritam zope 教你如何用 asm 和 c 编写自己的内核。如果你想开始的话,这是我当前的引导加载程序。它只是打印你好世界。
org 0x7c00
mov si, message ;The message location *you can change this*
call print ;CALL tells the pc to jump back here when done
jmp $
print:
mov ah, 0Eh ;Set function
.run:
lodsb ;Get the char
; cmp al, 0x00 ;I would use this but ya know u dont so use:
cmp al, 0 ;0 has a HEX code of 0x48 so its not 0x00
je .done ;Jump to done if ending code is found
int 10h ;Else print
jmp .run ; and jump back to .run
.done:
ret ;Return
message db 'Hello, world', 0 ;IF you use 0x00
;message db 'Hello, world', 0x00
times 510-($-$$) db 0
dw 0xaa55
~
将此代码保存在名为 main.asm 的文件中 编译它并nasm -fbin main.asm -o main.bin
运行它qemu-system-x86_64 main.bin