X86系统启动

BIOS找到以0X55AA结束的512Byte扇道,把此512字节内容加载到起始地址为07c00h的内存,然后BIOS把控制权限这段内存中的程序了。这段程序就是系统的开始了。

最简单的系统:

    ;org 0100h   ;调试用
    org 07c00h  ;最终留下
    mov ax, cs
    mov ds, ax
    call    DispStr
    jmp $
DispStr:
    mov ax, BootMessage
    mov bp, ax
    mov cx, 16
    mov ax, 01301h
    mov bx, 000ch
    mov dl, 0
    int 10h
    ret
    BootMessage:   db   "Hello, OS world!"
    times   510-($-$$) db 0
    dw 0xaa55

  用NASM编译出bin文件后,用visual box软驱加载此bin文件,可以看见hello world了:

可以认为,一个世界上最小的系统已经起来了

原文地址:https://www.cnblogs.com/souroot/p/4656173.html