4、段寄存器(SegmentRegister)
为了运用所有的内存空间,8086设定了四个段寄存器,专门用来保存段地址:
CS(CodeSegment):代码段寄存器;
DS(DataSegment):数据段寄存器;
SS(StackSegment):堆栈段寄存器;
ES(ExtraSegment):附加段寄存器。
当一个程序要执行时,就要决定程序代码、数据和堆栈各要用到内存的哪些位置,通过设定段寄存器CS,DS,SS来指向这些起始位置。通常是将DS固定,而根据需要修改CS。所以,程序可以在可寻址空间小于64K的情况下被写成任意大小。所以,程序和其数据组合起来的大小,限制在DS所指的64K内,这就是COM文件不得大于64K的原因。