微机中的实际地址、物理地址、有效地址、逻辑地址之间的区别

首先对于微机原理这门课最常介绍的就是8086/8088两种型号的芯片。所以我们的结论也是基于此。

我们知道,8086/8088有20根地址线,这使得它们能够寻址1MB的空间;而CPU的指令指针(IP)和堆栈指针(SP)都是16位,故只能直接寻址64KB的地址空间。但是1M那么大的空间占着不用多浪费啊。所以就把它分成了若干逻辑段(我们平时说的有关于“段”的词汇一般都是指“逻辑段”,而不是存储器物理意义上的分段),“逻辑段”看名字就知道是臆想出来的,每一段最大不超过64KB。逻辑段和逻辑段之间可以是重叠的,也可以是分开的,或者是断开的,如图:(ABCDE段都是逻辑段)

微机中的实际地址、物理地址、有效地址、逻辑地址之间的区别_第1张图片

逻辑段是一块区域,要能快速准确查找到具体的地址,当然要通过段首地址和一个段首地址的偏移量相加组成。下面的图解释得就很清楚:(左边的段地址也是指逻辑段)

微机中的实际地址、物理地址、有效地址、逻辑地址之间的区别_第2张图片

而所谓的”段加偏移“说的就是逻辑段首地址*16+偏移量(关于进制自己去领悟,学计算机不要受10进制拘束)

理论讲完了。接下来就是简单的结论:

1、实际地址=物理地址,就是存储器实际上的地址,图2最右,段+偏移可以得到,由20位二进制数表示或者5位16进制数表示

2、有效地址(EA)即偏移地址(偏移地址=偏移量)

3、逻辑地址,逻辑地址由两个16位地址分量组成,段地址和偏移量,一般会这样表示-->段地址:偏移量。但是在代码中,如果你单步调试过的话你就会看到代码给出的地址是4位16进制数,其实就是偏移量,不严格地说,这也可以算逻辑地址。作者看了很多资料,对逻辑地址的定义都是模糊地人云亦云,没有明确地制定格式。

-------以上是作者考试周慌慌张张匆匆忙忙但是认认真真总结的,有缘深入研究再更新,欢迎指出不足(虽然可能没法改Hhh)


转载请注明出处,谢谢

 

你可能感兴趣的:(微机原理)