根据我对与书上所理解的,Loader就是要完成引导程序没有完成的事情:1.加载内核。2.跳入保护模式。

我们先看书上最简单的Loader的代码: 摘自<Orange'S : 一个操作系统的实现>P109.

;Loader.asm

org 0100h

mov ax, 0B00h

mov gs, ax

mov ah, 0Fh ;黑底,白字.

mov  al, 'L' 

mov   [gs:((80*0+39)*2)], ax ;屏幕第0行,第39列.

     

        jmp  $

 

编译: nasm loader.asm -o loader.bin

代码功能:完成在屏幕上输出一个“L ”,这就是最简单的内核功能。

这段loader.bin二进制代码加载到内存任意位置都可正确执行,但要扩展,需要保证放入某个段内偏移0X100的位置.