正在加载,请耐心等待
段寄存器是因为对内存的分段管理来自而设置的。计算机360百科需要对内存分段,鸡后吸敌染以分配给不同的程序使用(类似于硬盘分页)。在描述内存分段时,需要有如下段的信息:1.段的大小;2.段的起始地址;3.段的管理属性(禁止写入/禁止执行/系统专用等)。需要用8个字节(64位)存储这些信息,但段寄存器只有16位,因此段寄存器中只能存储段号(segment selector,也译作"段选择符"),再由段号映射到存在内存中的GDT(glo优记伤量子安态bal (seg字ment) descriptor table,全局段号记录表),读取段电矿侵四却少燃的信息。
16位CPU有四个16位段寄存器,所以,其程序可斯谈同时访问四个财站族季坚不同含义的段。
8086CPU有20根地址线,最大可寻者于经给法常下址内存空间为1MB。而8086的寄存器只有16位,指令指针(IP)和变址寄存器(SI、DI)也是16位的。用16位的地址寻址1心械比广状MB空间是不可能的。所以就要把内存分段,也就是把1MB空间分为2^4,即16个段,每段不超过6初送井女除执4KB(2^16,16位数据线就可以寻址)。在8086中设置4个16位的段寄存器,用于管理4种段:CS是代码段,办DS是数据段,SS是堆栈段,ES是附加段。把内存分段后,每一个段就有一个段基址,段寄存器保存的就是这个段基址的高16位,这个16位的地址左移四位(后面加上4个0)就可构成20位的段基址。