x86保护模式     实模式与保护模式切换实例 实例一 逻辑功能   以十六进制数的形式显示从内存地址110000h开始的256个字节的值    实现步骤: 1  切换保护方式的准备 2. 切换到保护方式 3. 把指定内存区域的内容传送到位于常规内存的缓冲区中 4. 切换回实模式 5. 显示缓冲区内容   代码: 386保护模式汇编语言程序用到的包含文件如下所示,该包含文件在后面的程序中还要用到. ;名称:386SCD.INC ;功能:符号常量等的定义 ;-------------------…
★PART1:32位保护模式下任务的隔离和特权级保护  这一章是全书的重点之一,这一张必须要理解特权级(包括CPL,RPL和DPL的含义)是什么,调用门的使用,还有LDT和TSS的工作原理(15章着重讲TSS如何进行任务切换). 1. 任务,任务的LDT和TSS 程序是记录在载体上的指令和数据,其正在执行的一个副本,叫做任务(Task).如果一个程序有多个副本正在内存中运行,那么他对应多个任务,每一个副本都是一个任务.为了有效地在任务之间进行隔离,处理器建议每个任务都应该具有他自己的描述符表,称…
★PART1:32位的x86处理器执行方式和架构 1. 寄存器的拓展(IA-32) 从80386开始,处理器内的寄存器从16位拓展到32位,命名其实就是在前面加上e(Extend)就好了,8个通用寄存器被命名为EAX,EBX,ECX,EDX,ESI,EDI,ESP和EBP,同样的,操作的时候必须要和寄存器的长匹配,比如下面的操作就是错的. 32位通用寄存器的高16位不可以单独使用,但是他们的低16位依然可以按照8086的使用方法一样使用.处理器在32位保护模式下可以使用全部的32条地址线,访问4…
    第八章是一个非常重要的章节,讲述的是实模式下对硬件的访问(这一节主要讲的是硬盘),还有用户程序重定位的问题.现在整理出来刚好能和保护模式下的用户程序定位作一个对比. ★PART1:用户程序的重定位,硬盘的访问 1. 分段.段的汇编地址和段内汇编地址 NASM编译器使用汇编指令“SECTION”或者“SEGMENT”来定义段.他的一般格式是SECTION 段名称或者SEGMENT段名称(段名称不能重复),另外NASM对段没有数量的限制,一个程序可以有很多的代码段和数据段.Intel处理器要…
中断是处理器一个非常重要的工作机制.第9章是讲中断在实模式下如何工作,第17章是讲中断在保护模式下如何工作. ★PART1:外部硬件中断 外部硬件中断是通过两个信号线引入处理器内部的,这两条线分别叫NMI和INTR.处理器正在运行的时候会收到各种各样的中断,有些中断必须被处理,这就叫非屏蔽中断:有一些中断的处理优先级没有那么高,并且可以屏蔽,这就叫可屏蔽中断 1. 非屏蔽中断(Non Maskable Interrupt,NMI) 一旦处理器接受到NMI,说明处理器遇到了严重事件,这个时候必须无…
15章其实应该是和14章相辅相成的(感觉应该是作者觉得14章内容太多了然后切出来了一点).任务切换和14章的某些概念是分不开的. ★PART1:任务门与任务切换的方法 1. 任务管理程序 14章的时候我们说过,一个程序他可以有很多个任务,特权级指的是任务的不同部分的特权级,一个任务可以有两个空间,一个全局空间,一个局部空间.在一个任务内,全局空间和局部空间具有不同的特权级别,使用门,可以在任务内将控制从3特权级的局部空间转移到0特权级的全局空间,以使用内核或者操作系统提供的服务. 任务切换时以任…
★PART1:进入保护模式 1. 全局描述符表(Global Descriptor Table,GDT)        32位保护模式下,如果要使用一个段,必须先登记,登记的信息包括段的起始地址,段的界限和各种访问属性,如果偏移地址超过了段的界限,就会引发异常中断.和一个段有关的信息需要8个字节来描述,这被称为段的描述符(Segement Descriptor),每个段都需要一个描述符,为了存放描述符,需要在内存中开辟一段空间.这些描述符集中存放,构成了一个描述符表. 为了跟踪全局描述符表,处理…
其实很久之前就学完了实模式了,但是一直没有总结,感觉现在直接在书上做笔记的弊端就是有些知识点不能很很深刻地记下来(毕竟手写最明显的优点就是能深刻地记住知识,但是就是用太多的时间罢了).一下内容都是一些这本书里面的知识和笔记. ★PART1:进制计数: 1.  二进制到十进制的相互转换(带权乘法) a. 二进制转十进制,只要把每一个位都乘以2的相应阶数就可以了,(无论是整数部分还是小数部分) b. 比如:10110001B=1*27+0*26+1*25+1*24+0*23+0*22+0*21+1*…
https://www.cnblogs.com/Philip-Tell-Truth/p/5317983.html   这里有详细的过程说明.文字很多,为了方便阅读和理解,提炼了一些要点后归纳.整理了如下导图: 这次主要介绍实模式下的中断原理和demo示例:按照中断来源,分外部硬件中断.CPU内部中断和软中断. 1.外部硬件中断:可简单理解为和CPU关联的外部设备产生的中断: 非可屏蔽中断 (1)non maskable interupt,简称NMI.从字面上看,既然不可屏蔽,说明优先级最高,CP…
第16章讲的是分页机制和动态页面分配的问题,说实话这个一开始接触是会把人绕晕的,但是这个的确太重要了,有了分页机制内存管理就变得很简单,而且能直接实现平坦模式. ★PART1:Intel X86基础分页机制 1. 页目录.页表和页 首先先要明白分页是怎么来的,简单来讲,分页其实就是内存块的映射管理.在我们之前的章节中,我们都是使用的分段管理模式,处理器中负责分段的部件是段部件,段管理机制是Intel处理器最基本的处理机制,在任何时候都是无法关闭的.而当开启了分页管理之后,处理器会把4GB的内存分…