一、逻辑地址和物理地址
物理地址可以理解成是某个存储单元的真正的地址,然而地址总线有20位,寄存器们只有16位,无法完全访问到呀。所以就想到一个办法,搞出一个逻辑地址,之后编程都使用逻辑地址。
写法为 aaaa:bbbb
前者为段地址,后者为偏移地址。
物理地址=段地址左移一位+偏移地址。
16进制左移一位相当于2进制左移4位,于是就是16+4=20位了。
(但是据说逻辑地址不唯一,这个地方现在还不太理解,而且这样的话如何避免呢?以后补。)
二、偏移地址和段地址
其实就是把内存人为地分成了好几个段。每个段都有一堆存储单元。
偏移地址就是在这个段的基础上,具体的存储单元位置。
就比如一栋楼有好几个单元(段地址),一个人具体住在几层几号房间(偏移地址)。这样找一户人家就比把所有住户都排好队一个一个找容易多了。
(现在想到的问题是,一个段有多少存储单元?有没有一堆操作数跨越两个段的可能性?如何避免?以后补)
段地址存储在段寄存器中。4个段寄存器:CS DS SS ES
偏移地址则可以用很多方式来表示,接下来会在寻址方式里介绍。