8086cpu  内存有多少个段地址

解决方案 »

  1.   

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