8086CPU 给出物理地址的方法

 以下内容来自于《汇编语言》(第三版)

 8086CPU 有 20 位地址总线,可以传送 20 位地址,达到 1MB 寻址能力。但是 8086CPU 是 16 位结构,在内部一次性处理、传输、暂时存储的地址为 16 位。从 8086CPU的内部结构来看,如果将地址从内部简单地发出,那么它只能送出 16 位地地址,表现出的寻址能力只有 64KB。

8086CPU采用一种在内部用两个 16 位地址合成的方法来形成一个 20 位的物理地址。8086CPU 相关部件的逻辑结构如图所示

在这里插入图片描述

 CPU中相关部件提供两个 16 位的地址,一个称为段地址,另一个称为偏移地址。段地址和偏移地址通过内部总线送入一个称为地址加法器的部件。地址加法器将两个 16 位地址合成为一个 20 位的物理地址,然后通过内部总线将 20 位物理地址送入输入输出控制电路。然后输入输出控制电路将 20 位物理地址送上地址总线,这 20 位物理地址就被地址总线传送到了存储器。

 地址加法器采用 物理地址 = 段地址 * 16 + 偏移地址(给常用的说法是 段地址左移 4 位 + 偏移地址)的方法将段地址与偏移地址进行合成。比如 8086CPU 要访问地址 123C8 的内存单元,此时地址加法器的过程如图所示

在这里插入图片描述

 物理地址 = 段地址 * 16 + 偏移地址 的本质含义其实是:CPU 在访问内存时,用一个基础地址和一个相对于基础地址的偏移地址相加,给出内存单元的物理地址,即 物理地址 = 基础地址 + 偏移地址。也就是说 8086CPU 的这种寻址功能是 物理地址 = 基础地址 + 偏移地址 寻址模式的一种具体实现方式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值