首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
x86保护模式-七中断和异常
】的更多相关文章
x86保护模式-七中断和异常
x86保护模式-七中断和异常 386相比较之前的cpu 增强了中断处理能力 并且引入了 异常概念 一 80386的中断和异常 为了支持多任务和虚拟存储器等功能,386把外部中断称为中断 把内部中断称为异常 最多支持256中断或异常 1.中断 中断是由异步的外部事件引起的.外部事件及中断响应与正执行的指令没有关系. 通常中断对应i/o操作的完成,cpu中intr引脚接受外部的可屏蔽的中断请求,NMI引脚接受外部不可屏蔽的中断请求. EFLAGS标志寄存器中的IF标志决定是否屏蔽可屏蔽…
ASM:《X86汇编语言-从实模式到保护模式》第17章:保护模式下中断和异常的处理与抢占式多任务
★PART1:中断和异常概述 1. 中断(Interrupt) 中断包括硬件中断和软中断.硬件中断是由外围设备发出的中断信号引发的,以请求处理器提供服务.当I/O接口发出中断请求的时候,会被像8259A和I/O APIC这样的中断寄存器手机,并发送给处理器.硬件中断完全是随机产生的,与处理器的执行并不同步.当中断发生的时候,处理器要先执行完当前的指令(指的是正在执行的指令),然后才能对中断进行处理. 软中断是由int n指令引发的中断处理器,n是中断号(类型码). 2. 异常(Exception…
x86 保护模式 十 分页管理机制
x86 保护模式 十 分页管理机制 8.386开始支持分页管理机制 段机制实现虚拟地址到线性地址的转换,分页机制实现线性地址到物理地址的转换.如果不启用分页,那么线性就是物理地址 一 分页管理简介 cr0中的pg位=1 分页生效,将线性地址转换为物理地址. 只有在保证pe位为1的情况下 才能使pg位为1 否则将引起通用保护故障. 分页机制将线性地址空间和物理地址空间分别划分为大小相同的块.这样的块称为页.线性的页和物理的页之间建立映射,完成线性到物理地址的转换.线性地址空间的页…
X86保护模式 八操作系统类指令
X86保护模式 八操作系统类指令 通常在操作系统代码中使用,应用程序中不应用这些指令 指令分为三种:实模式指令,任何权级下使用的指令.实模式权级0下可执行的指令和仅在保护模式下执行的指令 一 实模式和任务特权级下可执行的指令 1.存储全局和中断描述符表寄存器指令 利用存储描述符表寄存器指令能把描述符表寄存器的内容保存到指定的存储单元.与GDT与IDT被所有任务共享不同,LDT是每个任务私有的.所以存储局部描述符表寄存器的LDTR的指令不在所列 a) 存储全局描述符表寄存器指令 SGDT QW…
x86保护模式 任务状态段和控制门
x86保护模式 任务状态段和控制门 每个任务都有一个任务状态段TSS 用于保存任务的有关信息 在任务内权变和任务切换时 需要用到这些信息 任务内权变的转移和任务切换 一般需要通过控制门进行这些转移. <一> 系统段描述符 系统段是为了实现存储管理机制所使用的一种特别的段 任务状态段TSS和局部描述符表LDT段 用于描述系统段的描述符成为系统段描述符 1.描述符格式 与存储段描述符类似 区别位属性字节中的描述符类型为DT的值 DT=1为存储段 D…
x86保护模式 实模式与保护模式切换实例
x86保护模式 实模式与保护模式切换实例 实例一 逻辑功能 以十六进制数的形式显示从内存地址110000h开始的256个字节的值 实现步骤: 1 切换保护方式的准备 2. 切换到保护方式 3. 把指定内存区域的内容传送到位于常规内存的缓冲区中 4. 切换回实模式 5. 显示缓冲区内容 代码: 386保护模式汇编语言程序用到的包含文件如下所示,该包含文件在后面的程序中还要用到. ;名称:386SCD.INC ;功能:符号常量等的定义 ;-------------------…
x86保护模式 控制寄存器和系统地址寄存器
控制寄存器和系统地址寄存器 控制寄存器 crx cr0 指示cpu工作方式的控制位 包含启用和禁止分页管理机制的控制位 包含控制浮点协处理器操作的控制位 注意必须为0的位 cr2和cr3 分页管理机制使用 1.保护控制位 cr0中位0 pe表示 为0实模式 为1 保护模式 位31 pg表示 为0 禁用分页 为1启用分页管理机制 注意1.不存在 pe为0 且pg为1的情况 即 实模式下开启分页机制 2.改变pg位 只有当所执行的…
x86保护模式-六 控制转移
控制转移可以分为两大类 :同一任务内的控制转移 和 任务间的控制转移(任务切换) 同一个任务内的控制转移可以分为段内转移 .特权级不变的段间转移和特权级改变的段间转移 段内转移与实模式相同 不涉及特权级变换和任务切换 只有段间转移才涉及特权级变换和任务切换任务 重点为任务内的特权级变换和任务间的切换 一 任务内无特权级变换的转移 1.段间转移指令 jmp call ret int iret 都具有段间转移功能 另外中断和异常也将引起段间转移 其…
x86保护模式 二 分段管理机制
分段管理机制 段选择子和偏移地址的二维虚拟地址转换为一维的线性地址 一 段定义和虚拟地址到线性地址的转换 三个参数定义段:段基地址 段界限 和段属性 同时也是段描述符的结构 段基地址为段的开始地址 386下为32位 可以在线性地址空间中的任何一个字节开始 段界限规定段的大小 保护模式下用20位表示 段界限的单位分为字节和4k字节两种 由段属性中的g位表示 粒度值为0是字节 为1是4k字节 字节单位 则界限为从1到1m(2的20次方) 4k字…
保护模式篇——TLB与CPU缓存
写在前面 此系列是本人一个字一个字码出来的,包括示例和实验截图.由于系统内核的复杂性,故可能有错误或者不全面的地方,如有错误,欢迎批评指正,本教程将会长期更新. 如有好的建议,欢迎反馈.码字不易,如果本篇文章有帮助你的,如有闲钱,可以打赏支持我的创作.如想转载,请把我的转载信息附在文章后面,并声明我的个人信息和本人博客地址即可,但必须事先通知我. 你如果是从中间插过来看的,请仔细阅读 羽夏看Win系统内核--简述 ,方便学习本教程. 看此教程之前,问几个问题,基础知识储备好了吗?上一节教…