天天看點

自制作業系統——01(Hello,world!)

boot.asm 程式代碼:

org ;加載本程式至記憶體0x7c00處,如果省略,那麼标号後面必須手動加上0x7c00
mov bp,szBuffer;将标号位址指派給bp
mov ah,;顯示字元(ah值的選擇可參考BIOS int h參數表)
mov cx,;這裡顯示12個字元
mov bx,h;初始化計數器bx為0
print_str:
mov bp,szBuffer;将字元串的位址指派給bp
add bp,bx;将字元串首字元的位址加上已經顯示過的字元數,就得到目前要顯示的字元位址
mov al,[bp];将目前字元的位址中存儲的字元指派給al
add bx,h;累加bx
int h;顯示目前字元
loop print_str;循環顯示,直到12個字元顯示完畢


loop:
 jmp loop;死循環挂起
szBuffer:
    dw "hello,world!",
times -($-$$) db ;湊齊512個字元,不足添0
dw ;可引導扇區必須以0x aa 55結尾
           

編譯指令:

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

用Virtual Box測試效果:

自制作業系統——01(Hello,world!)

繼續閱讀