现在位置: 首页 > 技术文章 > 操作系统 > 文章
2014年03月08日 操作系统 ⁄ 共 5106字 《自己动手写操作系统》学习笔记(六)已关闭评论 ⁄ 阅读 223 次
《自己动手写操作系统》学习笔记目录(持续更新)  http://www.techbulo.com/832.html LDT使用初步 LDT使用初步 在本节中,我们将添加一个LDT段,在段中打印一个字符L,从而学习如何利用程序的LDT段。程序的执行流程随之也会发生变化,我们将分析代码和分析代码结构。 一、概要分析: 在上一节的基础上,我们增加一个段LDT和一个LDT中的一个段codeA。需要注意的是,LDT存在的前提是GDT,因为LDT本身是一个段中,需要由GDT中的信...
阅读全文
2014年03月06日 操作系统 ⁄ 共 6773字 《自己动手写操作系统》学习笔记(五)已关闭评论 ⁄ 阅读 1,073 次
《自己动手写操作系统》学习笔记目录(持续更新)  http://www.techbulo.com/832.html 实模式->保护模式->实模式 实模式------>保护模式------>实模式 一、“实模式--保护模式--实模式”的转换过程 1、“实模式--保护模式”的跳转 (1)准备GDT (2)用lgdt加载gdtr (3)打开A20 (4)置cr0的PE位 (5)跳转,进入保护模式 2、“保护模式--实模式”的跳转  (比实模式--->保护模式要复杂一些,因为在准备结束保护模式...
阅读全文
2014年03月04日 操作系统 ⁄ 共 7081字 《自己动手写操作系统》学习笔记(四)已关闭评论 ⁄ 阅读 203 次
《自己动手写操作系统》学习笔记目录(持续更新)  http://www.techbulo.com/832.html 实模式跳转到保护模式 实模式------>保护模式 有了上一节的基础,那我们开始编码,看看如何实现先前描述的内容 首先,既然我们需要一个数组,全局描述符表,那我们就定义一块连续的结构体: [SECTION .gdt]    ;为了代码可读性,我们将这个数组放到一个节(段)中 ;由一块连续的地址组成的,不就是一个数组吗?看下面代码,^_^         ...
阅读全文
2014年03月02日 操作系统 ⁄ 共 381字 《自己动手写操作系统》学习笔记(三)已关闭评论 ⁄ 阅读 424 次
《自己动手写操作系统》学习笔记目录(持续更新)  http://www.techbulo.com/832.html 嘎嘎 初识保护模式 初识保护模式 之 保护模式下寻址     请看这篇文章  http://www.techbulo.com/825.html   初识保护模式 之 保护模式下,什么是一致性代码和非一致性代码段  请看这篇文章  http://www.techbulo.com/789.html   初识保护模式 之 什么是GDT,LDT,GDTR,LDTR  请看这篇文章  http://www.techbulo.com/708.html  ...
阅读全文
2014年02月28日 操作系统 ⁄ 共 1456字 为什么不能从32位的保护模式直接跳转到实模式已关闭评论 ⁄ 阅读 216 次
为什么不能从32位的保护模式直接跳转到实模式,而要先跳转到16位的保护模式,再从16位的保护模式跳转到实模式的理解 呼呼 不能从32位代码段返回实模式,而只能从16位代码段返回。 原因:(书中说的)因为无法实现从32位代码段返回时CS高速缓冲寄存器中的属性符合实模式的要求(实模式不能改变段属性) 下面具体的来进行分析: ;****************注意在此用normal选择子对段寄存器进行填充****************************** mov ax, S...
阅读全文
2014年02月27日 操作系统 ⁄ 共 3340字 段描述符高速缓冲寄存器介绍已关闭评论 ⁄ 阅读 217 次
描述符高速缓存寄存器 在实模式下,段寄存器含有段值,为访问存储器形成物理地址时,处理器引用相应的某个段寄存器并将其值乘以16,形成20位的段基地址。在保护模式下,段寄存器含有段选择子,如上所述,为了访问存储器形成线性地址时,处理器要使用选择子所指定的描述符中的基地址等信息。为了避免在每次存储器访问时,都要访问描述符表而获得对应的段描述符,从80286开始每个段寄存器都配有一个高速缓冲寄存器,称之为段描述...
阅读全文
×