中断 & 控制寄存器

中断

中断分为可屏蔽中断和不可屏蔽中断,中断处理程序由 IDT 表决定

可屏蔽中断

EFLAGS中有一个位置IF位,称为中断位,可以控制CPU是否响应。
	IF = 0 :  PU不响应CPU外部的可屏蔽中断发出的中断请求
	IF = 1 : CPU可以响应CPU外部的可屏蔽中断发出的中断请求

不管该标志为何值,CPU都必须响应CPU外部的不可屏蔽中断所发出的中断请求,以及CPU内部产生的中断请求

可屏蔽中断是由一块专门的芯片来管理的,通常称为中断控制器。它负责分配中断资源和管理各个中断源发出的中断请求.为了便于标识各个中断请求,中断管理器通常用IRQ,全称为Interrupt Request,后面加上数字来表示不同的中断。


ctl ;清空EFLAGS寄存器的IF的位置
stl ;设置EFLAGS寄存器的IF的位置

在这里插入图片描述

不可屏蔽中断

不可屏蔽中断不受EFLAGS的IF位的影响,一旦发生,CPU必须处理;处理不可屏蔽中断,CPU会调用2号中断

异常

异常通常是CPU在执行指令时检测到的某些错误,比如除0、访问无效页等,中断与异常之间有一些相似之处,但它们是不一样的

中断 :来自于外部设备,是中断源(比如键盘)发起的,CPU是被动的
异常 : 自于CPU本身,是CPU主动产生的

INT N虽然被称为“软件中断”,但其本质是异常,EFLAG的IF位对INT N是无效

异常处理

无论是由硬件设备触发的中断请求还是由CPU产生的异常,处理程序都在IDT表

控制寄存器

Cr0

Cr0是一个十分重要的寄存器,可以说它是总开关的集合体

在这里插入图片描述

PE位 : PE = 1是保护模式 , PE = 0 实地址模式
PG位 :PG= 1开启分页机制,PG= 0未开启分页机制 只有开启保护模前提下才可以开启分页机制
WP位 : 写保护位 ,WP = 1时,Supervisor不能写R/W没有置位的页,WP = 0时,Supervisor可以写任何页 对于用户权限,无论WP是什么,都不可以写R/W没有置位的页

Cr1

保留

Cr2

当CPU访问某个无效页面时,会产生缺页异常,此时,CPU会将引起异常的线性地址存放在CR2中

Cr3

记录了页目录表地址

Cr4

在这里插入图片描述

VME : 用于虚拟8086模式
PAE : PAE = 1,是2-9-9-12分页,PAE = 0是10-10-12分页
PSE : 大页是否开启的总开关,如果置0,就算PDE中设置了大页你也得是普通的页

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值