保护模式 宏观理解

保护模式:以XXXX:YYYYYYYY的方式来寻址。

十六位的XXXX是段选择子,存放在段寄存器中cs,ds,ss,es,fs,gs

段选择子在GDT中选择段描述符。

GDT的基址在GDTR中。GDTR的基址加上段寄存器中的XXXX段选择子,可以得到该段的段描述符。

段描述符中含有该段的32位基址。

段描述符中该段的32位基址+YYYYYYYY偏移地址得到该段的线性地址。

----------------------------------------------------------------------------------------------------------------------------------------

LDTR中输入段选择子,cpu会在GDT中选择LDT描述符,建立LDT,然后若段选择子中TF1中为1,则在该LDT中寻找段描述符。

时间: 2024-10-12 18:30:08

保护模式 宏观理解的相关文章

保护模式详解

在ia32下,cpu有两种工作模式:实模式和保护模式. 在实模式下,16位的寄存器用"段+偏移"的方法计算有效地址. 段寄存器始终是16位的.在实模式下,段值xxxxh表示的以xxxx0h开始的一段内存.但在保护模式下,段寄存器的值变成了一个索引(还有附加信息)这个索引指向了一个数据结构的表(gdt/ldt)项,表项(描述符)中详细定义了段的其实地址.界限.属性等内容. 保护模式需要理解:描述符,选择子 描述符包括,存储段描述符(代码段,数据段,堆栈段),系统描述符(任务状态段TSS,

第十四天、保护模式开启

loader的任务有两个:开启保护模式,将核心 kernel 载入内存.保护模式照抄上次的代码就行, kernel 嘛,先读个文本文件到内存,然后显示出来--检查下效果就行. 常量里加上 kernel.bin 载入内存的段基址 ; Constant.inc ; 常量 ; 四彩 ; 2015-11-17 %ifndef _CONSTANT_INC %define _CONSTANT_INC ; ====================================================

【OS】实模式和保护模式区别及寻址方式

实模式和保护模式区别及寻址方式 转载请注明出处:http://blog.csdn.NET/rosetta 64KB-4GB-64TB? 我记得大学的汇编课程.组成原理课里老师讲过实模式和保护模式的区别,在很多书本上也有谈及,无奈本人理解和感悟能力实在太差,在很长一段时间里都没真正的明白它们的内含,更别说为什么实模式下最大寻址空间为1MB?段的最大长度不超过64KB?而保护模式下为啥最大寻址能力就变成了64TB?每个段最大也达4GB? 更甚者分段和分页这两个高深的概念像我这种菜鸟怎么也理解不了啊!

存储器的保护(一)——《x86汇编语言:从实模式到保护模式》读书笔记18

本文是原书第12章的学习笔记. 说句题外话,这篇博文是补写的,因为让我误删了,可恶的是CSDN的回收站里找不到! 好吧,那就再写一遍,我有坚强的意志.司马迁曰:“文王拘而演<周易>:仲尼厄而作<春秋>:屈原放逐,乃赋<离骚>:左丘失明,厥有<国语>:孙子膑脚,<兵法>修列:不韦迁蜀,世传<吕览>……”好了,不煽情了,进入正题. 第12章的代码如下. 1 ;代码清单12-1 2 ;文件名:c12_mbr.asm 3 ;文件说明:硬盘主引

一个操作系统的实现(11)-让操作系统进入保护模式

这节首先介绍了突破引导扇区只有512字节的原理,然后介绍了FAT12文件系统,最后通过实验加载loader并将控制权交给loader来实现突破512字节的束缚. 突破512字节的限制 前面所用的引导扇区只有512字节.然而实际上操作系统在启动过程需要做的事情是很多的.所以需要通过某种方法突破512字节的限制. 那么如何突破512字节的限制呢?一种方法是再建立一个文件,通过引导扇区把它加载到内存,然后把控制权教给它.这样,512字节的束缚就没有了. 这里被引导扇区加载进内存的并不是操作系统的内核.

一个操作系统的实现(2)-认识保护模式

今天开始学习intel处理器的保护模式.书的第二章 这节讲述的是如何从实模式进入保护模式.用的例子是在保护模式下向屏幕上输出字符P 如何进入保护模式呢?主要步骤如下: 0. 进入保护模式的步骤 准备GDT 用lgdt加载gdtr 打开A20 置r0的PE位位1 跳转,进入保护模式 下面是书的例子: 1. 进入保护模式实例 ; ========================================== ; pmtest1.asm ; 编译方法:nasm pmtest1.asm -o pm

《80x86汇编语言程序设计》保护模式第一个例题

<80x86汇编语言程序设计>保护模式第一个例题的一些个人理解和注释 ; 16位偏移的段间直接转移指令的宏定义 02.jump macro selector, offsetv 03. 04. db 0eah ; jmp far 的操作码 05. dw offsetv 06. dw selector 07. 08.endm 09. 10.; 字符显示宏指令定义 11.echoch macro ascii 12. 13. mov ah, 2 14. mov dl, ascii 15. int 21

第04章 保护模式入门

1 实模式 1.1 实模式缺点 保护模式强调的是保护,是在Intel 80286中首次出现. 实模式的特点: 实模式下,操作系统和用户程序属于同一特权级. 用户程序所使用的地址都指向真实的物理地址,也就是说逻辑地址等于物理地址 用户程序可以使用任意段基址,修改内存中任意数据. 访问超过64KB数据需要切换段基址 一次只能运行一个程序 共20条地址线,最大可寻址的内存为1MB 为了克服这种不安全的内存管理.处理器厂商,开发出保护模式.物理内存不能直接被程序访问,程序内部的地址需要被转化位物理地址再

【自制操作系统04】从实模式到保护模式

通过前三章的努力,我们成功将控制权转交给了 loader.asm 这个程序.具体说就是 bios 通过加载并跳转到 0x7c00(IMB大叔们定的) 把控制权转交给了我们操作系统的第一个汇编程序 mbr.asm,然后 mbr.asm 里做的事就是通过加载 loader 程序并跳转到 0x900(这个是我们自己定的)把控制权转交给了 loader.asm 程序,目前这个程序里还只是向屏幕输出一行字符串"loader",今天我们就将扩展它.并且今天我们要做的事,是操作系统中的第一个精彩之处