*56.段寄存器

分段式分区方式
为什么会有段寄存器的存在:
一开始的因特尔8086cpu的数据总线宽度和地址总线宽度不一致,数据总线较低位,地址总线宽度可以做到比较大。
地址总线我们知道,如果位数少,那寻址范围就很小,所以会考虑比较大的地址总线宽度。
但是如果地址总线宽度大于数据总线会带来一些麻烦,ALU(算数逻辑单元)无法在单个指令周期里完成对地址数据的运算。
就是地址太长,我没法一次性算完。(类似于:让一个小学生算高中生的数学题)
那么这个时候英特尔想出了一个解决办法。
地址太长,那我就把地址弄短点。那怎么弄短呢?
段产生了,段寄存器就是。
在描述内存分段时,需要有如下段的信息:
1.段的
大小
;2.段的起始地址;3.段的管理属性(禁止写入/禁止执行/系统专用等)。
需要用8个字节(64位)存储这些信息,但段寄存器只有16位,因此段寄存器中只能存储段号(segment selector,也译作“段选择符”),再由段号映射到存在内存中的GDT(global (segment) descriptor table,全局段号记录表),读取段的信息。
通俗说就是段寄存器太小,不能够放很多信息,那么只能放一个段号,然后通过查表的方式读取段的信息。

段寄存器分为四种逻辑段:
1.代码段寄存器:CS
2.数据段寄存器:DS
3.堆栈段寄存器:SS
4.附加段寄存器:ES

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值