段描述符的大小为8个字节大小,下面是一道例题要求根据内存分配情况对段描述符进行正确填充。
如下图,在进入保护模式时,必须填充一个数据段描述符和一个代码段描述符,对应的内存段大小都是8M,要求填写每个段描述符的内容:
由题意知段描述符的界限为8M,即 800000H,一共占用了...
JInkun
7年前 (2016-02-04) 1865℃ 0评论
2喜欢
保护模式和实模式一样,都是通过段寄存器和通用寄存器来进行寻址,区别是实模式只有20位地址线的寻址能力,而保护模式有32位地址线的寻址能力,保护模式和实模式一样,也是把内存分成了一个个内存段来表示,把已经分好的内存段信息存入一张表格中,段寄存器中保存要访问的表格的索引,寻找内存段...
JInkun
7年前 (2016-02-04) 1731℃ 0评论
0喜欢
x86CPU主要有三种工作模式,分别是 实模式,保护模式和 虚拟8086模式。
实模式
在8086CPU中,只有实模式一种工作模式。实模式有自己独特的寻址方式 段地址:偏移地址,它实际对应的物理地址为:
实际物理地址 = 段地址 * 16 + 偏移地址
16位的8...
JInkun
7年前 (2016-02-03) 1840℃ 0评论
1喜欢
引导扇区(boot sector)是设备的第一个扇区,大小为512个字节,并且以0xAA55结束。当机器加电启动后,如果选择从软盘启动,会检查软盘的0面0磁道1扇区,如果它以0xAA55结束,就认为它是一个引导扇区,之后把引导扇区内容加载到用户指定的内存地址处,并从此处开始执行...
JInkun
7年前 (2016-02-02) 2056℃ 0评论
1喜欢
上一篇笔记提到当运行bochs虚拟机的时候:
bochs -f bochsrc
并不会直接运行,而是进入了调试状态,然后输入指令进行调试。
在上图中最后一行可以看到输入了指令“c”, 指令“c”的含义是“继续执行直到遇到断点” . 实际这里可以输...
JInkun
7年前 (2016-01-21) 2230℃ 0评论
1喜欢
写一个操作系统,目的就是得到一个软盘映像文件 *.img ,笔者首先写了一个映像文件 a.img进行展示,之后再介绍是如何完成的。
使用bochs运行a.img: (图中红色部分即为要输出内容)
使用VMare运行a.img:
可以看到...
JInkun
7年前 (2016-01-19) 2357℃ 1评论
0喜欢
实现一个操作系统内核原型之前的开发环境的搭建:
1. 一个linux的开发环境,比如ubuntu,debian,如果使用windows开发,可以使用QEMU,Virtual Box等虚拟机安装linux。
2. 代码编辑器,比如 vim,emacs,g...
JInkun
7年前 (2016-01-18) 3160℃ 0评论
2喜欢