LiteOS-从bios到MBR引导代码
启动步骤
1.BIOS 加电启动后,开始进入计算机启动流程
2.自检,该过程主要用于检查基本硬件故障,如内存,CPU等,该过程可以再BIOS设置里面关闭,自检通过后许多旧年代的主板会蜂鸣器 表示通过。
3.从BIOS配置的启动设备启动,可以是HDD 光驱,也可以是软盘。找到后开始读取MBR(主引导记录),这里就是关键了,
扇区开始的
第一段为:引导程序占用446个字节,并且引导程序第一段指令为org 7c00h,bios吧程序加载到0000:7c00处开始执行,为什么是这个值 http://blog.csdn.net/mirage1993/article/details/29908929 解释地清楚
第二段为分区表:16*4个字节
第三段为结束标示值为0xaa55 ,2字节
一共512字节。
4.加载引导程序
前面446字节记录着引导程序代码,
编写引导代码boot.asm
org 7c00h mov ax, cs mov es, ax mov ax, logo mov bp, ax mov cx, len mov ax, 1301h mov bx, 000fh mov dl, 0 int 10h logo: db "LiteOS 0.1 (c) 2013-2017 dreamyouxi.com" len: equ $ - logo times 510 - ($ - $$) db 0 dw 0aa55h
用masm工具 生成二进制代码 start nasm boot.asm -o boot.bin,生成的文件就是我们需要的512字节的MBR。
新建一个vm虚拟机 ,把设备文件设置为生成的BMR
运行