在80x86 CPU架构中,由于段寄存器仅包含16位,因此它们能够存储20位段起始地址的高位16位,这部分被称为段基值(Segment Base Value)。通过将段基值左移4位并添加4个二进制0,可以得到一个完整的20位段起始地址,这个地址称为段基地址或段基址(Segment Base Address)。
在80x86 CPU中,段
寄存器的长度限制为16位,这使得它们只能保存20位段起始地址的高16位,这部分数值被称为段基值。为了确保段起始地址的有效性,机器会自动将这些地址的低4位设置为0。通过对段基值进行左移操作,即将其末尾添加4位二进制0,便能得到一个完整的20位段起始地址,这一过程产生的地址被称为段基地址或段基址。需要注意的是,段基址的形式为xxxx0H,其中低4位二进制数均为0,这意味着只有能够被16整除的内存物理地址才能够作为有效的段基址使用。
8086 CPU采用分段寻址的方式来管理存储器,以解决16位
寄存器无法直接访问1MB存储空间的问题。具体来说,1MB的存储空间被划分为多个段,每个段的最大容量为64KB,这是因为16位的寄存器所能提供的地址范围上限为2^16,即64KB。在这种情况下,段内的地址可以通过16位来表示。同时,段的地址只需要4位即可表示,从而实现了对整个1MB存储空间的物理寻址。