关于段地址为甚么要乘以16这个问题

1.首先我们知道我们的段地址是16位寄存器存放的但是cpu比如8086他有20根地址线,所以我们需要完整的寻址能力,一开始我也不太理解。

2.好那么首先我们可以知道的是16位寄存器最大的寻址能力是65535 + 1也就是一次可以读取出这么多数据,但是让我们回到上面的那个问题为什么要乘以16,我们首先用65536x16我们可以算出一个数为什么不是65535呢因为0-65535它是包含0的也就是65536

这就是我们所算出的数据,现在我们把它转换成16进制

就得到了以下结果至于为什么不是1048576呢因为要包含0

3.我们这样一算呢就是非常合理有5个16进制位就是20根地址线合理吧

4.那么我们来解决一下为什么我们的物理地址它的公式是段地址*16+偏移地址呢

首先呢我们知道1个16进制位最多表示0000也就是16那么一个是16我们有5个

那就是16的5次方16^5就是上面的数字那么也就是FFFFF这么多但是16位寄存器只能取到FFFF这么多那么既然最多只能存储FFFF那么多出来的一个F呢就需要用到偏移地址了,因为的话如果从

家                        商店                        学校

0m                        1000m                   1800m

而有一张纸条最大只能存储三位数字,就像FFFF最多只能存储16^4一样

那么1800是四位数字,多出来的就是相当于我们的偏移地址

所以我们可以用100*10这个就相当于基础地址了这个基础地址因为基础地址已经超出最大的纸条的存储范围了所以我们就没办法把这个存放在纸条里面但是离学校还有800m我们就需要加上800就相当于偏移地址那么最终我们呢会得到物理地址也就是1800m

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CodeForWater

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值