BIOS在启动中的角色:
(1) BIOS装载引导驱动器上的0扇区(CHS = 0:0:1)内容到内存线性地址7C00H处;
(2) BIOS检查所装载的扇区是否有启动标记(510、511字节分别为55H和AAH);
(3) CPU寄存器DL被设置为分配给引导驱动器的驱动器号,00H为软驱A,80H为硬盘C;
(4) BIOS跳转到其装载的扇区中的代码(即7C00H处),将控制权转交给引导代码。
引导代码应该初始化以下寄存器:
(1) DS:某些BIOS设置其值为0,某些设置其为40H,它应该被设置为(7C00H-BOOT_ORG)/16,
其中,BOOT_ORG为引导代码的ORG值,该值通常为7C00H(这意味着DS应设置为0);
(2) SS和SP(堆栈):这两个寄存器的初始值依赖于BIOS;
(3) CS个IP(通过JMP指令):大多数的BIOS进入启动代码的地址为0000:7C00H,但是某些
BIOS却跳转到07C0:0000H。由于短跳转和条件跳转是IP相关的,因此如果没有使用
远跳转或者绝对跳转,则不需要重置CS和IP;然而,DS仍旧必须是正确的值。