码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-11-07 10:54:51      阅读:675      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!