在内存中,基本储存单位是一个字节。由于16位CPU的地址线是20位的,所以可以用一个20位数来唯一的标识一个字节的储存单位。当需要找到某一特定的储存单元时,只须给出该单位的20位标识数码就可以了。这个起标识作用的20位数码就是该储存单元的物理地址。因为地址线是20位,所以16位CPU的最大寻址能力是1MB。另一方面,16位CPU的数据线却是16位,无法一次性传送20位数。所以,16位CPU想一次寻址20位是不可能的。
人的创造力是无穷的,天才的设计者们想到了一个方法,将20位物理地址分成两步给出。首先,将内存分段。每一个段的首地址的低四位都是0,这样最多可以分成64k个小段。同时由于段基址(首地址)的低4位都是0,所以段基址只需要16位就可以描述。这样,想给出一个储存单元的物理地址,首先要找到它是属于哪个段,也就是找到段基址。而段基址都被放在相应的段寄存器中。第二步,在段内开始寻址。也就是找到该单元相对于段首的偏移地址。由于数据线最大宽度是16位,所以最多可以用16位来标识一个偏移量。实际上,这也暗示了一个段的最大长度是64kb。
总的来讲,16位CPU寻址采用的是段+偏移的方式