
操作系统
Vi_Young
因为喜欢,所以我到了
展开
-
裸机跑起自己得程序
这是一个关于启动得程序。其目标是将一个程序不依赖任何操作系统而运行起来。下面是关于它的一点内容。 首先了解下PC开机后得一些动作 1)、PC启动时Intel系列CPU进入实模式设置CS=0xffff,IP=0x0000,所以CPU先执行0xffff0处代码[ROM-BIOS起始位置]。 2)、BIOS进行一系列自检,然后初始化位于地址0处得中断向量表。 3)、B...2012-03-08 22:30:35 · 448 阅读 · 0 评论 -
保护模式--段式存储
我们都知道,现在我们用计算机时操作系统都傲游在她的保护模式上,而一开始计算机是运行在保护模式上的。那么之间是如何转换得呢? 首先温习一下实模式下的物理地址和寄存器代表得(逻辑地址)之间得关系 物理地址=段值*16+偏移地址。 但是在保护模式下(段式管理),寄存器中得值并不是物理地址得段值,而是段值得索引。这个索引指向一个数据结构得一个表项。 这个数据结构就是GDT(Global D...2012-03-26 21:17:23 · 213 阅读 · 0 评论 -
小试保护模式
前几天将段式保护模式从理论上了解了。所以这几天就借助一些书籍和网络得力量来争取实践---将代码跳入保护模式。 首先了解跳入保护模式的基本步骤 1、将代码段基址存入GDT 2、利用lgdt将GDT基址以及长度加载到gdtr寄存器 3、关中断 4、打开20号地址线 5、置位CR0的PE,准备切换 6、跳入保护模式下的代码段 下面就是这个简单跳跃得代码: pm.inc包含一些宏定义...2012-04-04 01:23:20 · 169 阅读 · 0 评论 -
玩转保护模式
这几天还是在学习《自己动手写操作系统》,终于将保护模式了了。 上来贴上代码: %include "pm.inc" org 0100h xchg bx,bx jmp START [SECTION .gdt] GDT_DEC: Descriptor 0 , 0 , 0 CODE32_DEC: Descriptor 0 ,Code32SegLen-1,DA_32+DA...2012-04-07 14:54:44 · 163 阅读 · 0 评论