首页 > 其他 > 详细

汇编学习笔记---物理地址计算

时间:2015-11-07 10:53:20      阅读:282      评论:0      收藏:0      [点我收藏+]

要理解段地址偏移,首先要了解,为啥要计算段地址。

举个例子:8086CPU有20位地址总线,一次可以传送20为地址,达到1MB的寻址能力,但是,该CPU内部又是16位结构,一次处理传输和暂存的地址为16位,只能传送16位的地址,寻址能力只有64K,因此,通常8086CPU采用的是在内部用两个16位地址来合成一个20位物理地址,而这个20位的物理地址计算,就是通过段地址和偏移地址来合成的。

当8086CPU要读写内存时:

技术分享

在上述过程中,地址加法器是如何计算20位物理地址的呢?

这里,地址加法器采用的公式如下:

20位物理地址=段地址X16+偏移地址

比如,8086CPU要方位地址为123C8H的内存单元,那么计算过程是:

段地址:1230

偏移地址00C8

物理地址=1230X16+00C8=12300+00C8=123C8

注意:这里的X16不同于我们的数学计算哦

对于物理地址的计算,它的本质含义是这样的:CPU在访问内存时,用一个基础地址(段地址X16)和一个相对于基础地址的偏移地址相加,来给出内存单元的物理地址。

即:物理地址=段地址X16+偏移地址=基础地址+偏移地址

这里一个基础地址必然是16的倍数,所以一个段的起始地址也一定是16的倍数,偏移地址为16位,16位地址的寻址能力是64K,所以,一个段的最大长度为64K。

版权声明:本文为博主原创文章,未经博主允许不得转载。

汇编学习笔记---物理地址计算

原文:http://blog.csdn.net/trent1985/article/details/49699627

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!