8086 段寄存器

news/2025/3/16 12:53:31/

段寄存器是因为对内存的分段管理而设置的。计算机需要对内存分段,以分配给不同的程序使用(类似于硬盘分页)。在描述内存分段时,需要有如下段的信息:1.段的大小;2.段的起始地址;3.段的管理属性(禁止写入/禁止执行/系统专用等)。需要用8个字节(64位)存储这些信息,但段寄存器只有16位,因此段寄存器中只能存储段号(segment selector,也译作“段选择符”),再由段号映射到存在内存中的GDT(global (segment) descriptor table,全局段号记录表),读取段的信息。 [1] 

16位CPU有四个16位段寄存器,所以,其程序可同时访问四个不同含义的段。

8086CPU有20根地址线,最大可寻址内存空间为1MB。而8086的寄存器只有16位,指令指针(IP)和变址寄存器(SI、DI)也是16位的。用16位的地址寻址1MB空间是不可能的。所以就要把内存分段,也就是把1MB空间分为2^4,即16个段,每段不超过64KB(2^16,16位数据线就可以寻址)。在8086中设置4个16位的段寄存器,用于管理4种段:CS是代码段,DS是数据段,SS是堆栈段,ES是附加段。把内存分段后,每一个段就有一个段基址,段寄存器保存的就是这个段基址的高16位,这个16位的地址左移四位(后面加上4个0)就可构成20位的段基址。 [2] 

 

段寄存器CS指向存放程序的内存段,IP是用来存放下条待执行的指令在该段的偏移量,把它们合在一起可在该内存段内取到下次要执行的指令。

段寄存器SS指向用于堆栈的内存段,SP是用来指向该堆栈的栈顶,把它们合在一起可访问栈顶单元。另外,当偏移量用到了指针寄存器BP,则其缺省的段寄存器也是SS,并且用BP可访问整个堆栈,不仅仅是只访问栈顶。

段寄存器DS指向数据段,ES指向附加段,在存取操作数时,二者之一和一个偏移量合并就可得到存储单元的物理地址。该偏移量可以是具体数值、符号地址和指针寄存器的值等之一,具体情况将由指令的寻址方式来决定。

通常,缺省的数据段寄存器是DS,只有一个例外,即:在进行串操作时,其目的地址的段寄存器规定为ES。当然,在一般指令中,我们还可以通过改变前缀中的“段取代”字段来改变操作数的段寄存器。

“可选用的段寄存器”即是可以用强置说明这些段寄存器的值来作为其操作数地址的段地址。

 

寄存器(Register),是中央处理器内的其中组成部份。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和地址。在中央处理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序计数器。在中央处理器的算术及逻辑部件中,包含的寄存器有累加器。 [4] 

在电脑架构里,处理器中的暂存器是少量且速度快的电脑存储器,借由提供快速共同地访问数值来加速电脑程序的运行:典型地说就是在已知时间点所作的之计算中间的数值。 [4] 

暂存器是存储器层次结构中的最顶端,也是系统操作数据的最快速途径。暂存器通常都是以他们可以保存的比特数量来估量,举例来说,一个8位暂存器或32位暂存器。暂存器现在都以暂存器数组的方式来实现,但是他们也可能使用单独的正反器、高速的核心存储器、薄膜存储器以及在数种机器上的其他方式来实现出来。 [4] 


http://www.ppmy.cn/news/243319.html

相关文章

8086寄存器简介

引子 打算写几篇稍近底层或者说是基础的博文,浅要介绍或者说是回顾一些基础知识, 自然,还是得从最基础的开始,那就从汇编语言开刀吧, 从汇编语言开刀的话,我们必须还先要了解一些其他东西, …

8086寄存器

一、寄存器和数据存储 1.CPU的组成 1.运算器进行信息处理; 2.寄存器进行信息存储; 3.控制器协调各种器件进行工作; 4.内部总线实现CPU内各个器件之间的联系。 2.8086CPU14个存储器 通用寄存器∶AX、BX、CX、DX 变址寄存器∶SI、Dl 指针寄存器:SP、BP 指令指针寄存器︰…

8086芯片寄存器简介

8086芯片寄存器简介 通用寄存器:数据寄存器:AX (Accumulator):累加寄存器BX (Base):基地址寄存器CX (Count):计数器寄存器DX (Data):数据寄存器 指针寄存器:SP (Stack Pointer):栈指…

8086/8088CPU的编程结构

编程结构是指从程序员和使用者的角度看到的结构,亦可成为功能结构。 功能结构 8086/8088由两部分组成,总线接口部件BIU和执行部件EU BIU负责与存储器及I/O接口之间的数据传送操作。 四个段寄存器 CS DS SS ES 16位的指针寄存器IP 20位地址加法器&a…

8086/8088 CPU的段寻址方式,段地址和偏移地址

8086/8088 CPU的段寻址方式,段地址和偏移地址 例子 段地址 : 偏移地址 0000 : 0020H,000016002000020H 段地址 : 偏移地址 0001 : 0010H,000116001000020H 段地址 : 偏移地址 0002 : 0000H,000216000000020H 这三组逻辑地址&…

3.8086/8088微处理器结构

80X86微处理器 (一)知识范围 8086/8088CPU的内部结构和外部引线; 8086/8088CPU的工作方式;8086/8088CPU系统总线的形成;8086/8088的存储器结构;总线操作及时序。 (二)考核要求 掌…

8086芯片认识

一、设置8086最小模式系统总线 8086系统中 BHE# 和 A0 引脚 AD15 ~ AD0 为地址/数据总线,T1 时用作地址总线的低 16 位,其他时间用作数据总线。 A19 ~ A16 / S6 ~ S3为地址状态总线,T1 时用作地址总线高 4 位,其他时间指示 CPU 状…

8086存储器结构

8086系统中的存储器是一个最多 1MB(220B) 的序列,即可寻址的存储空间为 1MB ,系统为每字节分配一个20位的物理地址,对应的十六进制数地址范围为 00000H~FFFFFH 。 字 字:一个字 两字节 16bit,在存储器中任何两个相…