一个CPU有几个寄存器

如题所述

X86构架的处理器定义为拥有8个寄存器,但是从intel最近几年的新构架来看,是可以超过8个的,所以这并不是一个确定的值,需要很多条件来限制才能有确定值
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-01-02
寄存器是中央处理机的一个不可分割的一部分。该寄存器是一个有限的存储器容量的高速存储的部件,它们可以被用于临时存储的指令,数据和地址。在中央处理机的控制部分,包含在指令寄存器(IR)和程序计数器(PC)中的寄存器。中央处理器的算术和逻辑组件,该寄存器包含累加器(ACC)。
注册的内存层次结构的顶部,也是最快的方式运行数据系统。注册,例如,他们可以节省数位,通常是衡量一个8位寄存器“或”32位寄存器“。注册登记文件来实现,但它们也可能使用一个单独的触发器来实现的高速的核心内存,薄膜内存以及几台机器上,否则
注册通常意指的输出或输入的指令直接索引到注册组。适当的给他们打电话“的架构寄存器。
例如,x86指令的集合,8个32位寄存器的定义,但执行x86指令集的CPU可以超过8个寄存器。
寄存器CPU内部组件,寄存器具有非常高的识字率,所以非常快速的数据传输寄存器之间进行。
[编辑本段]寄存器使用
寄存器中的数据进行算术和逻辑运算;
地址存储在寄存器可以用来指向内存中的一个位置,即解决; /> 3可用于读取和写入数据的计算机外围设备。
[编辑本段]数据寄存器
8086 14个16位寄存器,14个寄存器按其用途可以分为(1)通用寄存器,(2)指令指针(3)标志寄存器和(4)段寄存器4。
(1)通用寄存器8和可分为两组,一组数据寄存器(4),另一组指针寄存器和变址寄存器(4)。
数据寄存器分为:
AH&AL = AX(累加器):累加器寄存器用来存储操作数的计算中,常用的乘法和除法指令中指定的,所有的I / O指令的使用注册设备传输数据以外
BH&BL = BX(基地):基址寄存器,常用的地址索引;
CH和CL = CX(计数):计数寄存器,常用的计数;通常用于保存所计算的值,如在移位指令,环路(环路),和串行处理指令所暗示计数器。
生署&DL = DX(数据):数据寄存器,常用的数据传输中。
他们的特点是4个16位寄存器,可分为八个高:AH,BH,CH,DH。以及低八:AL,BL,CL,DL。 2个组的8位寄存器可以是单独可寻址的,并且单独使用。
另一组指针寄存器和索引寄存器,包括:
SP(堆栈指针):堆栈指针,与SS配合使用,可以指向当前堆栈位置;
BP(基址指针):基址指针寄存器,可以作为一个相对基地址的SS
SI(指数):源变址寄存器可用来存放相对于DS段的源索引指针;
DI(目的地指数):指数在寄存器的目的,可以使用相对到ES段指针的目的存储索引。
这4个16位寄存器只能进行16位的存取操作,主要用来形成操作数的地址,并使用计算有效地址的操作数堆栈操作和索引操作。
(2)指令指针IP(指令指针)
指令指针IP是一个16位专用寄存器,它指向需要删除当前指令字节BIU删除一个指令字节自动从记忆体IP加1点到下一个指令字节。注意IP点的指令的地址的地址的段内的偏移量的偏移地址(偏移地址)或有效地址(EA和有效地址),也被称为。
(3)标志寄存器FR(标志寄存器)
8086有一个18位的标志寄存器FR和9 FR有意义的,六个状态位和3个控制位。
作者:溢出标志,是用来反映加法和减法的有符号数溢出的结果。如果计算结果超过,可以表示在当前的算术中位数称为溢出作者在值的范围内被设置为1,否则,该值。被清除为0。
DF:方向标志DF位被用来确定的字符串操作指令的执行指针寄存器调整的方向。
IF:中断允许标志IF位是用来决定是否发出的CPU可屏蔽中断响应CPU外部中断请求。然而,无论标志值,CPU必须响应非屏蔽中断的问题,外部中断请求的CPU,以及CPU内部生成的中断请求。具体规定如下:
(1),当IF = 1,CPU响应可屏蔽中断CPU发出中断请求,
(2)IF = 0,CPU不响应CPU外部可屏蔽中断的中断请求发出。
TF:跟踪旗TF。此标志可用于调试。 TF标志没有专门的指令来设置或清除。
如果TF = 1(1)中,CPU是一个单步执行指令每执行的指令对每个寄存器的当前值和CPU将在CPU中执行的下一条指令。
(2)如果TF = 0,在连续模式。
SF:符号标志SF符号位是用来反映该操作的结果,它是相同的操作的结果的MSB。在微计算机系统中,用于补充符号的符号的数目,所以,SF也反映操作结果的符号。的操作的结果是肯定的,则SF有一个值,该值是0,否则,它的值是1。
ZF:零标志ZF用来反映操作的结果是0。如果结果为0,1的值,否则它的值是0。在操作结果是否为0的判断,可以使用这个标志位。
AF:在下列情况下,辅助进位标志AF的值设置为1,否则它的值是0:
(1)低字节到高字节的二进制字操作发生或借用; BR />(2),低4字节的操作中,发生进位或借。
PF:奇偶标志PF用于反映的奇偶校验计算的数字“1”的结果。如果“1”的数目为偶数时,PF值1,否则它的值是0。
CF:进位标志CF主要用来反映操作者是否进位或借。如果MSB操作的结果产生进位或借,那么它的值是1,否则其值为0。为了使用所有的内存空间)
4)段寄存器(段寄存器)
8086套4段寄存器,保存段地址:
CS(代码段):验证码段寄存器;
DS(数据段):数据段寄存器;
SS(堆栈段):堆栈段寄存器;
附加段(ES):附加段寄存器。
时要被执行的一个程序,它是必要的决定的程序代码,数据和堆栈存储器中的什么位置,每次使用指向这些起始位置,通过设置段寄存器CS,DS,SS。一般的DS是固定的,同时可根据需要CS。因此,该程序可以是小于在可寻址空间中被写入的64K的情况下在任何规模的。因此,组合的程序和数据,有限的DS所指的64K的大小,这是COM文件不得大于64K的原因。 8086内存当作战场,注册一个军事基地,以加快工作。
以上是8086寄存器的整体形象,自80386启动PC进入32位时代的寻址模式,寄存器的大小,功能的改变。
=============================下面是一些信息========= 80386寄存器= ============================
寄存器是32位的。
A,通用寄存器
这里是通用寄存器和成语。正如它的名字所暗示的,通用寄存器的寄存器,你可以根据自己的意愿,并它们的值?通常不会造成很大的影响的计算机上运行。最普遍使用的通用寄存器的计算方法。
EAX:通用寄存器。相对于其他寄存器进行评估。在保护模式下,也可以用来作为存储器偏移指针(在这种情况下,DS作为段寄存器或选择器)
EBX:一般用途寄存器。通常作为内存偏移指针的使用(相对的EAX,ECX,EDX),DS是默认的段寄存器的选择。在保护模式下,也可以扮演这个角色。
ECX:通用寄存器。通常是使用一个特定指令的计数。在保护模式下,也可以用来作为存储器偏移指针(在这种情况下,DS寄存器或段选择)。
EDX:通用寄存器。在某些操作中EAX的溢出寄存器(例如乘,除)。在保护模式下,也可以用来作为一个存储器偏移指针(DS段寄存器或选择器)。
AX分为AH&AL上述寄存器包括分组的相应的16 - 位和8位的数据包。在特殊寄存器
ESI
B,作为一个内存指针:通常在内存操作指令的源地址指针的使用。当然,ESI可以装入的任何值,但通常没有人正在使用它作为一个通用寄存器。 DS是默认的段寄存器的选择。
EDI作为目的地址指针内存操作指令通常使用。当然,EDI也可以被加载到任何值,但通常没有人使用它作为一个通用寄存器。 DS是默认的段寄存器的选择。
EBP:这是一个寄存器作为指针。通常情况下,它是一种高级语言编译器的建设的“堆栈帧”来保存局部变量的函数或过程,但是,还是那句话,您可以在其中保存任何您想要的数据。 SS是默认的段寄存器或选择器。
注意,三个寄存器没有相应的8位数据包。换句话说,你可以通过SI,DI,BP作为别名来访问他们的低16位,但有没有办法直接访问的低8。
C,段选择:
实模式下,段寄存器保护模式的选择摇身一变就成了。 ,实时模式下,段寄存器是16位和32位保护模式的选择。
CS代码段,或代码选择。的地址指向到当前正在执行的相同的IP寄存器(后述)。点从该寄存器中,当处理器执行的段(实模式),或存储器(保护模式下),以获得指示。除了跳转或分支指令外,您不能该寄存器的内容。
DS数据段或数据选择器。该寄存器的低16位处理内存与ESI点指令。在同一时间,所有的内存操作指令默认情况下,使用其指定的经营分部(实模式)或内存(作为选择,这个寄存器可以被加载到保护模式中的任何值,但是,必须要小心这样做,首先,将数据发送到AX,然后转移从AX到DS的(当然,也可以通过堆栈)
ES附加段,或额外选择低16位的寄存器同样,该寄存器可以被加载到任何值,类似的方法和DS,连同EDI点的指令来处理与内存。的
FS f片段或F选择器(大概F是免?)可以使用该寄存器默认的段寄存器选择器可装载任何值,相似的方法和DS的替代品。
GS G或G选择器(G和F的意义,没有任何文件对英特尔解释),它几乎完全是相同的,FS。
SS堆栈段或堆栈选择低16位寄存器一起ESP指向下一个堆栈操作(push和pop)堆栈地址。寄存器可以也可装入任何数值,你可以推和弹出操作要分配给他,但栈中的许多操作具有非常重要的意义,因此,不正确的可能会导致损坏的堆栈。<BR / *注意一定不在初学阶段,在迷宫中迷路了,这些寄存器进行编译。他们是非常重要的,一旦你掌握了它们,你可以做任何操作的段寄存器,或选择不指定,使用默认的这些话,可能现在看来,可能有点稀里糊涂的情况下,你很快就会知道如何做到这一点在后面的指令指针寄存器。

EIP寄存器,非常这是一个32位宽的寄存器,点该指令一起执行CS地址不能直接该寄存器的值,跳转或分支指令,它是唯一的方法。(CS默认的段或选择器)
以上的基本寄存器。有一些其他寄存器,你可能不会甚至听说过他们。(包括32-bit宽):
CR0,CR2,CR3(控制寄存器)。给你举个例子,CR0的作用是切换到实模式和保护模式。
有一些其他的寄存器,D0,D1,D2,D3,D6和D7(调试寄存器)。他们作为调试器硬件支持,可以设置条件断点。
TR3,TR4 ,TR5,TR6和TR注册为一定条件下的测试(测试寄存器)。本回答被网友采纳

CPU中有哪些主要寄存器?简述这些寄存器的功能?
1. 通用寄存器:CPU中包括AX、BX、CX和DX这四个16位通用寄存器,它们可以存储数据或地址,并且在某些模式下也可以作为8位寄存器使用,分别称为AH、AL、BH、BL、CH、CL、DH和DL。2. 段寄存器:为了管理1MB的存储空间,CPU使用了段寄存器。这些寄存器将存储空间划分为可变的逻辑段,每个逻辑段最大可达64...

CPU中有哪些主要寄存器?简述这些寄存器的功能?
1、通用寄存器组 通用寄存器组包括AX、BX、CX、DX4个16位寄存器,用以存放16位数据或地址。也可用作8位寄存器。用作8位寄存器时分别记为AH、AL、BH、BL、CH、CL、DH、DL。2、段寄存器 采用分段技术来解决。将1MB的存储空间分成若干逻辑段,每段最长64KB,这些逻辑段在整个存储空间中可浮动。3、指针...

c6748系列cpu每个寄存器组有几个寄存器
C6748系列CPU的寄存器架构是其高性能数字信号处理能力的关键组成部分。每个C6748 CPU拥有两个寄存器组,这两个寄存器组各自包含了一定数量的寄存器,以满足其复杂的计算需求。具体来说,每个寄存器组包含了**16个32位的寄存器**,总共加起来就是32个通用寄存器。这样的设计使得CPU在处理数据时能够高效地进行...

一个CPU有几个寄存器
X86构架的处理器定义为拥有8个寄存器,但是从intel最近几年的新构架来看,是可以超过8个的,所以这并不是一个确定的值,需要很多条件来限制才能有确定值

CPU的寄存器分为那几类?
32位CPU继承了16位CPU的所有寄存器,并将通用寄存器、指令指针和标志寄存器扩展为32位。此外,增加了两个16位的段寄存器:FS和GS。32位CPU的寄存器包括:- 数据寄存器:EAX、EBX、ECX、EDX - 变址和指针寄存器:ESI、EDI - 指针寄存器:ESP、EBP - 段寄存器:ES、CS、SS、DS、FS、GS - 指令指针...

8086cpu中有哪些寄存器
1. 通用寄存器 2. 控制寄存器 3. 状态寄存器 接下来,详细介绍通用寄存器:1. 通用寄存器主要用于存储数据和中间结果。8086 CPU拥有AX、BX、CX和DX四个通用寄存器。这些寄存器能够参与算术运算、数据传输等多种操作。例如,AX寄存器通常用作累加器,BX用作基址,CX和DX则常用于计数和数据交换。此外,通用...

台式和笔记本电脑CPU里面有多少寄存器
32位CPU所含有的寄存器有 4个数据寄存器(EAX、EBX、ECX和EDX)2个变址和指针寄存器(ESI和EDI) 2个指针寄存器(ESP和EBP)6个段寄存器(ES、CS、SS、DS、FS和GS)1个指令指针寄存器(EIP) 1个标志寄存器(EFlags)具有一个输入端口和两个输出端口。x86-64总共添加了8个常规用途寄存器(GPRs), 总数目达到...

CPU中有哪些主要寄存器
1. CPU寄存器分类:不同CPU架构的寄存器存在差异,即使是同一架构的不同型号,寄存器也可能不同。以80386 CPU为例,寄存器分为六大类,包括通用寄存器(如EAX、EBX、ECX、EDX等)、段寄存器(如CS、DS、SS、ES等)、标志和控制寄存器(如EIP、EFLAGS)。2. 通用寄存器作用:应用程序员可使用通用寄存器来...

8088\/8086 计算机中,CPU内部有哪几个寄存器,各个寄存器有什么特点...
8086 CPU 中寄存器总共为 14 个,且均为 16 位 。即 AX,BX,CX,DX,SP,BP,SI,DI,IP,FLAG,CS,DS,SS,ES 共 14 个。而这 14 个寄存器按照一定方式又分为了通用寄存器,控制寄存器和段寄存器。通用寄存器:AX,BX,CX,DX 称作为数据寄存器:AX (Accumulator):累加寄存器,也称之为...

简述CPU内有哪些主要寄存器及作用
32位CPU有2个32位通用寄存器ESI和EDI。其低16位对应先前CPU中的SI和DI,对低16位数据的存取,不影响高16位的数据。寄存器ESI、EDI、SI和DI称为变址寄存器(Index Register),它们主要用于存放存储单元在段内的偏移量,用它们可实现多种存储器操作数的寻址方式,为以不同的地址形式访问存储单元提供方便...

相似回答