汇编学习笔记----8086CPU的段寄存器

本文介绍了8086CPU的16位结构和20位地址总线的寻址能力,通过段地址和偏移地址合成物理地址的方式解决了寻址问题。详细讲解了8086CPU中的四个段寄存器——CS、DS、SS的作用,以及它们如何与IP、SP寄存器配合,指示指令、数据和栈的位置。

(1)在8086CPU中,它是16bit结构,一次可以传送一个字的数据,但其地址总线有20根,一次可以传送2的20次方的数据

也就是说它的寻址能力为1MB,很明显,如果将地址从CPU内部简单的发出来,一次就只能传送16bit的地址,寻址能力

只有64KB了。

至于为什么这么设计,真心还不知道,但8086CPU采用了用两个地址相加的方法来解决 了这种消耗。

8086CPU提供一个16bit的段地址和一个16bit的偏移地址,利用一个地址加法器将两个地址合成一个20bit的地址

合成公式:

物理地址 = 段地址*16 + 偏移地址

如:2345C的物理地址,若其段地址为2345,其偏移地址就为C(这是根据16进制的加法算的,可以用熟悉的10进制加法

来理解16进制,10进制里乘以一个10就在其后加一个0,16进制里也是一样的,遇到16就往前进1,乘以16就在其后加0)

其中段地址和偏移地址是任意给出的,只要满足公式即可

(2)再想这么一件事,计算机中每一个字节放一个数,这些数有些是指令,有些又是数据,计算机在内存中获取这些数的时候,

是怎么区分这些数哪些是指令哪些是数据呢?8086CPU里,把这些东西分开放到了不同的地方,也就是指令与数据神马的

都会分开,这样就不会让计算机混淆了,不过,分开了又怎么去提取这些数据的地址单元呢?这个时候,8086CPU就提供

了四个段寄存器,用于存放各段内存的段地址,并提供了相应的方法来表示偏移地址,每个段寄存器存放不同的数据的地址,

这样就可以在计算机要提取指令的时候去一段内存里找,要提取数据内容的时候就跳到另一段内存里找,这里先看其中三种

段寄存器。

评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值