操作系统在加载程序时,给每个段寄存器都有规定的缺省值。因此,如果你的程序承认这个缺省值是不需要在程序中对段寄存器赋值的(当然赋了也没关系)。
一共有4个段地址寄存器,
CS(code segment register)16位代码段寄存器
DS(data segment register)16位数据段寄存器
SS(stack segment register)16位堆栈段寄存器
ES(extra segment register )16为附加段寄存器
8086CPU的地址线只有16位,地址空间最多为64kb,为了使CPU的地址空间扩大到1MB,采用分段的方式用来存放存储器的起始地址。段寄存器存放的是地址的高16位(此时左移4位),然后加上偏移地址就为20位。
这里为什么要设置寄存器?正确答案应该是段寄存器用于存放段地址。
上述题主所给答案可以回答为什么可以不设置段寄存器。这里的缺省值是默认值的意思。