16位和32位微处理器(4)——Pentium的寄存器及相关机制

Pentium的寄存器

在这里插入图片描述
(1)基本寄存器组
(2)系统寄存器组
(3)浮点寄存器组
系统寄存器组只供系统程序访问,其他两组寄存器则供系统程序和应用程序访问

基本寄存器组

通用寄存器、指令指针寄存器、标志寄存器:拓展到32位,同时兼容16位的CPU

段寄存器和描述符以及保护方式的寻址方式

段寄存器、段选择子和描述符

在这里插入图片描述
1.实地址下:每段的大小为64KB,寻址时,只要把段寄存器中的值左移4位,得到对应端的基地址,再加上偏移量,就得到了存储单元的物理地址
2.保护方式下:48位逻辑地址 分为段选择子和偏移量
段选择子=段寄存器中的内容,段选择子的值=描述符表中的一项(其中包含段基址)
注:每个描述符含8个字节,包含段基制、段长度、段的特性
寻址:段选择子->描述符->32位段基址->32位段基址+32位偏移量=线性地址(+分页机制)=物理地址

描述符表

(1)全局描述符表GDT
(2)局部描述符表LDT
(3)中断描述符表IDT
注:
1.一个系统GDT和IDT都只能有一个,而LDT可以有多个,每个LDT对应一个任务。而IDT和LDT本身也各对应了一个存储段,所以也对应一个描述符放在GDT中,
2.GDT包含了系统各公用段所对应的描述符,每个任务对应一个LDT,一个LDT中包含了对应任务使用的代码段、数据段和堆栈段的描述符。
3.多任务系统中,任务切换时,LDT也跟着切换,但GDT不变,故LDT映像的地址空间是随着任务而变的,而GDT映像的空间是所有任务共有的。
4.GDT和LDT映像的两部分地址空间可以达到4GB(32位地址线)*8192(2^13个描述符)*2(两张表)=64TB,但是受物理内存大小约束。

段选择子

在这里插入图片描述
其中13位的DI可以检索8192个描述符,每个描述符占8个字节,检索时,DI值*8即为描述符在GDT或LDT中的偏移量

LDTR和TR

LDTR也为16位的寄存器,用来存放选择子,据此可以在GDT中检索到当前LDT所对应的描述符,得到LDT的基地址;
TR也为16位的寄存器,用来存放当前任务的状态段选择子。可以通过这个16位的选择子,GDT中检索任务状态对应的描述符
LDT的寻址:
LDTR->GDT->LDT

中断的寻址机制

在实地址方式,Pentium采用和8086相同的方式处理中断,即在内存0段设置一个中断向量表,中断响应时,根据中断类型号从中断向量表获得中断处理子程序入口地址
在保护方式下,Pentium通过中断描述符表IDT而不是中断向量表来协助中断响应和处理,IDT中的每一项包含8个字节,IDT可以放在内存的任何位置
在这里插入图片描述
中断描述符包含3个方面的内容:
(1)段选择子
(2)32位偏移量
(3)相关段的参数

IDTR:48位的中断描述符表寄存器
高32位:中断描述符表的基地址
低16位:中断描述符表的界限值

寻址过程:
在这里插入图片描述
中断类型号*8+中断描述符基址=中断描述符(其中包含段选择子和偏移量)->GDT->内存中中断处理程序的入口地址

Pentium的中断机制

仍为两大类:硬件中断和软件中断
扩展:传统的外部中断=中断 通常的内部中断和软件中断=异常
异常可分为三类:
(1)故障:通常是可修复的,可以继续下去的
(2)陷阱:即通常的软中断(用一条指令进入中断)
(3)异常终止:真正的问题,一般无法继续(除0)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值