了解计算机开机加电到系统启动的过程。
为了向前兼容,使得旧代码可以运行在新的芯片中,现有的计算机一般都是由实模式开始。然后转成保护模式。
稍微带点历史信息:Intel处理器生产的8086CPU, 总线16位。地址总线20位。可寻址1M。 当初Intel本意是设计16位的处理器,但是正常寻址空间才2的16次方 = 64KB。 为了更大的寻址空间。 需要对16位的总线进行映射。 为了支持16位映射到20位地址空间,才新增了4个寄存器,CS代码段,DS数据库,ES其他,SS堆栈段。这样一个物理地址就变成了
段地址:段内偏移量。 段地址经过左移4位再加上段内偏移量就得到了真实的20位物理地址。
这种方式可以寻址的最大地址就是:0xFFFF:0xFFFF。 寻址空间为: 0x00000~~~~~~0x10FFEF。 地址总线20位,物理地址空间是0x00000~~~0xFFFFF。 超出的部分即
0x100000~~0x10FFEF自动映射到真实物理地址空间的0x00000处。 即对2的20次方求模运算后进行地址映射。
实模式:只能访问1MB的地址空间。但是访问的都是真实物理地址,即实际地址模式。 而且无法对内存加以保护。任何进程都可以修改寄存器指令来获取任意一个段地址。在任意64KB段起始地址的连续地址空间进行访问。可以直接软件访问BIOS及硬件,没有硬件支持的分页机制和实时多任务概念。
后来80386问世,32位的CPU登上的历史舞台。IA-32时代。为了向前兼容,使得旧的软件可以运行在新的硬件上。在段寄存器(CS,DS,SS,ES)基础上新增通用段寄存器FS和GS。新增这两个寄存器不仅可以起到辅助