2011年5月11日

第四章 boot.asm代码详解

摘要: 第四章 boot.asm 代码详解;%define _BOOT_DEBUG %ifdef _BOOT_DEBUG org 0100h %else org 07c00h %endif这段代码的意思是,如果定义了_BOOT_DEBUG 则 org 0100h,如果没有定义则 org 07c00h如果把;%define _BOOT_DEBUG前面的;去掉则该语句执行,_BOOT_DEBUG定义了。如果加上;则被注释掉了,_BOOT_DEBUG没有定义。--------------------------------------------------------------------------- 阅读全文

posted @ 2011-05-11 17:04 wanghj_dz 阅读(1958) 评论(0) 推荐(0) 编辑

突破512K字节限制

摘要: 512B是软盘第一扇区的大小,称为引导扇区。系统要进入保护模式,512B是不够用的。所以在软盘的其他地方存放一个文件,通过512B的引导扇区,加载到内存,并把控制权交给该它。一个操作系统从开机到开始运行,大致经历“引导---加载内核入内存--跳入保护模式---开始执行内核”这样一个过程。也就是说在内核开始执行之前不但要加载内核,还要准备保护模式等一系列工作,如果全部交给引导扇区来做,512B很可能不够用所以不妨把这个过程交给另外的模块来完成,我们把这个模块叫做Loader。引导扇区负责把Loader加载入内存并且把控制权交给它。其他工作放心地交给Loader来做。整理一下这一章的思路。目的是突 阅读全文

posted @ 2011-05-11 08:41 wanghj_dz 阅读(1064) 评论(0) 推荐(0) 编辑

导航