一、逻辑地址和物理地址
- 物理地址:加载到内存地址寄存器中的地址,内存单元真正的地址
- 逻辑地址:CPU生成的地址。相当于当前进程数据段的地址(是偏移地址)
二、什么是实地址模式
1、分段
在程序装入内存时并不是整块装入。因为一个程序包含了很多数据结构,不能一概而论。例如代码是只读的,相对固定的;而数据则会随着程序的变化不断发生变化。因此在程序装入的时候是采用分段的方式,将不同的程序装入不同的区域。那么定位指令或数据就使用
<段号 : 偏移量>的方式。
8086处理器中设置了CS(可执行代码)、DS(数据)、SS(堆栈)和ES(其他)这四个段寄存器。每个段寄存器都是16位的,对应地址总线中的高16位。
2、实模式的寻址方式
处理器8086有20根地址线,可以寻址1MB内存。但是,它内部的寄存器是16位的,如果按照原来的方式,把段寄存器的内容和偏移地址直接相加来形成物理地址的话,也智能得到16位的物理地址。因此如何用16位的CPU来访问20位的物理地址成为最大的问题。
为什么要提供20位的地址线?
你可能会想,让16位的CPU对应16位的地址线不就可以解决问题了吗?但是,16位的物理地址只能访问64k的内存,地址范围是0000H~FFFFH,共65536个字节,很显然这个容量肯定是不能满足需求的。而20位的物理地址就可以访问1MB的内存,地址范围是0000H~FFFFFH。</