精华内容
下载资源
问答
  • 寄存器有什么功能
    千次阅读
    2016-11-16 10:32:41

    转载于:http://blog.csdn.net/qikaibinglan/article/details/5444227


    寄存器是CPU内部的元件,寄存器拥有非常高的读写速度,所以在寄存器之间的数据传送非常快。

    寄存器的用途:

    1.可将寄存器内的数据执行算术及逻辑运算。

    2.存于寄存器内的地址可用来指向内存的某个位置,即寻址。

    3.可以用来读写数据到电脑的周边设备。

    8086 有8个8位数据寄存器,

    这些8位寄存器可分别组成16位寄存器:

    AH&AL=AX:累加寄存器,常用于运算;

    BH&BL=BX:基址寄存器,常用于地址索引;

    CH&CL=CX:计数寄存器,常用于计数;

    DH&DL=DX:数据寄存器,常用于数据传递。

    为了运用所有的内存空间,8086设定了四个段寄存器,专门用来保存段地址:

    CS(Code Segment):代码段寄存器;

    DS(Data Segment):数据段寄存器;

    SS(Stack Segment):堆栈段寄存器;

    ES(Extra Segment):附加段寄存器。

    当一个程序要执行时,就要决定程序代码、数据和堆栈各要用到内存的哪些位置,通过设定段寄存器 CS,DS,SS 来指向这些起始位置。通常是将DS固定,而根据需要修改CS。所以,程序可以在可寻址空间小于64K的情况下被写成任意大小。所以,程序和其数据组合起来的大小,限制在DS 所指的64K内,这就是COM文件不得大于64K的原因。8086以内存做为战场,用寄存器做为军事基地,以加速工作。

    除了前面所提的寄存器外,还有一些特殊功能的寄存器:

    IP(Intruction Pointer):指令指针寄存器,与CS配合使用,可跟踪程序的执行过程;

    SP(Stack Pointer):堆栈指针,与SS配合使用,可指向目前的堆栈位置。

    BP(Base Pointer):基址指针寄存器,可用作SS的一个相对基址位置;

    SI(Source Index):源变址寄存器可用来存放相对于DS段之源变址指针;

    DI(Destination Index):目的变址寄存器,可用来存放相对于 ES 段之目的变址指针。

    还有一个标志寄存器FR(Flag Register),有九个有意义的标志(

    OF: 溢出标志位OF用于反映有符号数加减运算所得结果是否溢出。如果运算结果超过当前运算位数所能表示的范围,则称为溢出,OF的值被置为1,否则,OF的值被清为0.

    DF: 方向标志DF位用来决定在串操作指令执行时有关指针寄存器发生调整的方向。

    IF: 中断允许标志IF位用来决定CPU是否响应CPU外部的可屏蔽中断发出的中断请求。但不管该标志为何值,CPU都必须响应CPU外部的不可屏蔽中断所发出的中断请求,以及CPU内部产生的中断请求。具体规定如下:

    (1)、当IF=1时,CPU可以响应CPU外部的可屏蔽中断发出的中断请求;

    (2)、当IF=0时,CPU不响应CPU外部的可屏蔽中断发出的中断请求。

    TF: 状态控制标志位是用来控制CPU操作的,它们要通过专门的指令才能使之发生改变

    SF: 符号标志SF用来反映运算结果的符号位,它与运算结果的最高位相同。在微机系统中,有符号数采用补码表示法,所以,SF也就反映运算结果的正负号。运算结果为正数时,SF的值为0,否则其值为1。

    ZF: 零标志ZF用来反映运算结果是否为0。如果运算结果为0,则其值为1,否则其值为0。在判断运算结果是否为0时,可使用此标志位。

    AF: 下列情况下,辅助进位标志AF的值被置为1,否则其值为0:

    (1)、在字操作时,发生低字节向高字节进位或借位时;

    (2)、在字节操作时,发生低4位向高4位进位或借位时。

    PF: 奇偶标志PF用于反映运算结果中“1”的个数的奇偶性。如果“1”的个数为偶数,则PF的值为1,否则其值为0。

    CF: 进位标志CF主要用来反映运算是否产生进位或借位。如果运算结果的最高位产生了一个进位或借位,那么,其值为1,否则其值为0。)

    以上是8086寄存器的整体概况, 自80386开始,PC进入

    32bit时代,其寻址方式,寄存器大小, 功能等都发生了变化, 要想学习这方面知识请参考相应资料

    更多相关内容
  • 8051内部21个,在物理上是分散在片内各功能部件中,在数学上把它们组织在内部数据存储器地址空间80H~FFH中,以便能使用统一的直接寻址方式来访问。这些特殊功能寄存器颁在以下各个功能部件中:(1)CPU:ACC、B、...
  • 内部寄存器不能被外部电路或软件访问,只是为内部电路的实现存储功能或满足电路的时序要求。而接口寄存器可以同时被内部电路和外部电路或软件访问,CPU中的寄存器就是其中一种,作为软硬件的接口,为广泛的通用编程...
  • 寄存器,寄存器什么意思

    千次阅读 2021-07-28 06:43:33
    寄存器,寄存器什么意思寄存器定义寄存器是中央处理器内的组成部分。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和位址。在中央处理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序计数器...

    寄存器,寄存器是什么意思

    寄存器定义

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

    寄存器是内存阶层中的最顶端,也是系统获得操作资料的最快速途径。寄存器通常都是以他们可以保存的位元数量来估量,举例来说,一个 “8 位元寄存器”或 “32 位元寄存器”。寄存器现在都以寄存器档案的方式来实作,但是他们也可能使用单独的正反器、高速的核心内存、薄膜内存以及在数种机器上的其他方式来实作出来。

    寄存器通常都用来意指由一个指令之输出或输入可以直接索引到的暂存器群组。更适当的是称他们为 “架构寄存器”。

    例如,x86 指令集定义八个 32 位元寄存器的集合,但一个实作 x86 指令集的 CPU 可以包含比八个更多的寄存器。

    寄存器是CPU内部的元件,寄存器拥有非常高的读写速度,所以在寄存器之间的数据传送非常快。

    特点及原理

    寄存器又分为内部寄存器与外部寄存器,所谓内部寄存器,其实也是一些小的存储单元,也能存储数据。但同存储器相比,寄存器又有自己独有的特点:

    ①寄存器位于CPU内部,数量很少,仅十四个;

    ②寄存器所能存储的数据不一定是8bit,有一些寄存器可以存储16bit数据,对于386/486处理器中的一些寄存器则能存储32bit数据;

    ③每个内部寄存器都有一个名字,而没有类似存储器的地址编号。

    寄存器的功能十分重要,CPU对存储器中的数据进行处理时,往往先把数据取到内部寄存器中,而后再作处理。外部寄存器是计算机中其它一些部件上用于暂存数据的寄存器,它与CPU之间通过“端口”交换数据,外部寄存器具有寄存器和内存储器双重特点。有些时候我们常把外部寄存器就称为“端口”,这种说法不太严格,但经常这样说。

    外部寄存器虽然也用于存放数据,但是它保存的数据具有特殊的用途。某些寄存器中各个位的0、1状态反映了外部设备的工作状态或方式;还有一些寄存器中的各个位可对外部设备进行控制;也有一些端口作为CPU同外部设备交换数据的通路。所以说,端口是CPU和外设间的联系桥梁。CPU对端口的访问也是依据端口的“编号”(地址),这一点又和访问存储器一样。不过考虑到机器所联接的外设数量并不多,所以在设计机器的时候仅安排了1024个端口地址,端口地址范围为0--3FFH。

    寄存器用途

    1.可将寄存器内的数据执行算术及逻辑运算;

    2.存于寄存器内的地址可用来指向内存的某个位置,即寻址;

    3.可以用来读写数据到电脑的周边设备。

    数据寄存器

    8086 有14个16位寄存器,这14个寄存器按其用途可分为(1)通用寄存器、(2)指令指针、(3)标志寄存器和(4)段寄存器等4类。

    (1)通用寄存器有8个, 又可以分成2组,一组是数据寄存器(4个),另一组是指针寄存器及变址寄存器(4个).

    顾名思义,通用寄存器是那些你可以根据自己的意愿使用的寄存器,修改他们的值通常不会对计算机的运行造成很大的影响。

    数据寄存器分为:

    AH&AL=AX(accumulator):累加寄存器,常用于运算;在乘除等指令中指定用来存放操作数,另外,所有的I/O指令都使用这一寄存器与外界设备传送数据.

    BH&BL=BX(base):基址寄存器,常用于地址索引;

    CH&CL=CX(count):计数寄存器,常用于计数;常用于保存计算值,如在移位指令,循环(loop)和串处理指令中用作隐含的计数器.

    DH&DL=DX(data):数据寄存器,常用于数据传递。

    他们的特点是,这4个16位的寄存器可以分为高8位: AH, BH, CH, DH.以及低八位:AL,BL,CL,DL。这2组8位寄存器可以分别寻址,并单独使用。

    另一组是指针寄存器和变址寄存器,包括:

    SP(Stack Pointer):堆栈指针,与SS配合使用,可指向目前的堆栈位置;

    BP(Base Pointer):基址指针寄存器,可用作SS的一个相对基址位置;

    SI(Source Index):源变址寄存器可用来存放相对于DS段之源变址指针;

    DI(Destination Index):目的变址寄存器,可用来存放相对于 ES 段之目的变址指针。

    这4个16位寄存器只能按16位进行存取操作,主要用来形成操作数的地址,用于堆栈操作和变址运算中计算操作数的有效地址。

    (2) 指令指针IP(Instruction Pointer)

    指令指针IP是一个16位专用寄存器,它指向当前需要取出的指令字节,当BIU从内存中取出一个指令字节后,IP就自动加1,指向下一个指令字节。注意,IP指向的是指令地址的段内地址偏移量,又称偏移地址(Offset Address)或有效地址(EA,Effective Address)。

    (3)标志寄存器FR(Flag Register)

    8086有一个18位的标志寄存器FR,在FR中有意义的有9位,其中6位是状态位,3位是控制位。

    OF: 溢出标志位OF用于反映有符号数加减运算所得结果是否溢出。如果运算结果超过当前运算位数所能表示的范围,则称为溢出,OF的值被置为1,否则,OF的值被清为0。

    DF:方向标志DF位用来决定在串操作指令执行时有关指针寄存器发生调整的方向。

    IF:中断允许标志IF位用来决定CPU是否响应CPU外部的可屏蔽中断发出的中断请求。但不管该标志为何值,CPU都必须响应CPU外部的不可屏蔽中断所发出的中断请求,以及CPU内部产生的中断请求。具体规定如下:

    (1)、当IF=1时,CPU可以响应CPU外部的可屏蔽中断发出的中断请求;

    (2)、当IF=0时,CPU不响应CPU外部的可屏蔽中断发出的中断请求。

    TF:跟踪标志TF。该标志可用于程序调试。TF标志没有专门的指令来设置或清楚。

    (1)如果TF=1,则CPU处于单步执行指令的工作方式,此时每执行完一条指令,就显示CPU内各个寄存器的当前值及CPU将要执行的下一条指令。

    (2)如果TF=0,则处于连续工作模式。

    SF:符号标志SF用来反映运算结果的符号位,它与运算结果的最高位相同。在微机系统中,有符号数采用补码表示法,所以,SF也就反映运算结果的正负号。运算结果为正数时,SF的值为0,否则其值为1。当运算结果没有产生溢出时,运算结果等于逻辑结果(即因该得到的正确的结果),此时SF表示的是逻辑结果的正负,当运算结果产生溢出时,运算结果不等于逻辑结果,此时的SF值所表示的正负情况与逻辑结果相反,即:SF=0时,逻辑结果为负,SF=1时,逻辑结果为正。

    ZF: 零标志ZF用来反映运算结果是否为0。如果运算结果为0,则其值为1,否则其值为0。在判断运算结果是否为0时,可使用此标志位。

    AF:下列情况下,辅助进位标志AF的值被置为1,否则其值为0:

    (1)、在字操作时,发生低字节向高字节进位或借位时;

    (2)、在字节操作时,发生低4位向高4位进位或借位时。

    PF:奇偶标志PF用于反映运算结果中“1”的个数的奇偶性。如果“1”的个数为偶数,则PF的值为1,否则其值为0。

    CF:进位标志CF主要用来反映运算是否产生进位或借位。如果运算结果的最高位产生了一个进位或借位,那么,其值为1,否则其值为0。

    (4)段寄存器(Segment Register)

    为了运用所有的内存空间,8086设定了四个段寄存器,专门用来保存段地址:

    CS(Code Segment):代码段寄存器;

    DS(Data Segment):数据段寄存器;

    SS(Stack Segment):堆栈段寄存器;

    ES(Extra Segment):附加段寄存器。

    当一个程序要执行时,就要决定程序代码、数据和堆栈各要用到内存的哪些位置,通过设定段寄存器 CS,DS,SS 来指向这些起始位置。通常是将DS固定,而根据需要修改CS。所以,程序可以在可寻址空间小于64K的情况下被写成任意大小。 所以,程序和其数据组合起来的大小,限制在DS 所指的64K内,这就是COM文件不得大于64K的原因。8086以内存做为战场,用寄存器做为军事基地,以加速工作。

    以上是8086寄存器的整体概况, 自80386开始,PC进入32bit时代,其寻址方式,寄存器大小,功能等都发生了变化。

    =============================以下是80386的寄存器的一些资料======================================

    寄存器都是32-bits宽。

    A、通用寄存器

    下面介绍通用寄存器及其习惯用法。顾名思义,通用寄存器是那些你可以根据自己的意愿使用的寄存器,修改他们的值通常不会对计算机的运行造成很大的影响。通用寄存器最多的用途是计算。

    EAX:通用寄存器。相对其他寄存器,在进行运算方面比较常用。在保护模式中,也可以作为内存偏移指针(此时,DS作为段 寄存器或选择器)

    EBX:通用寄存器。通常作为内存偏移指针使用(相对于EAX、ECX、EDX),DS是默认的段寄存器或选择器。在保护模式中,同样可以起这个作用。

    ECX:通用寄存器。通常用于特定指令的计数。在保护模式中,也可以作为内存偏移指针(此时,DS作为 寄存器或段选择器)。

    EDX:通用寄存器。在某些运算中作为EAX的溢出寄存器(例如乘、除)。在保护模式中,也可以作为内存偏移指针(此时,DS作为段 寄存器或选择器)。

    同AX分为AH&AL一样,上述寄存器包括对应的16-bit分组和8-bit分组。

    B、用作内存指针的特殊寄存器

    ESI:通常在内存操作指令中作为“源地址指针”使用。当然,ESI可以被装入任意的数值,但通常没有人把它当作通用寄存器来用。DS是默认段寄存器或选择器。

    EDI:通常在内存操作指令中作为“目的地址指针”使用。当然,EDI也可以被装入任意的数值,但通常没有人把它当作通用寄存器来用。DS是默认段寄存器或选择器。

    EBP:这也是一个作为指针的寄存器。通常,它被高级语言编译器用以建造‘堆栈帧'来保存函数或过程的局部变量,不过,还是那句话,你可以在其中保存你希望的任何数据。SS是它的默认段寄存器或选择器。

    注意,这三个寄存器没有对应的8-bit分组。换言之,你可以通过SI、DI、BP作为别名访问他们的低16位,却没有办法直接访问他们的低8位。

    C、段选择器:

    实模式下的段寄存器到保护模式下摇身一变就成了选择器。不同的是,实模式下的“段寄存器”是16-bit的,而保护模式下的选择器是32-bit的。

    CS 代码段,或代码选择器。同IP寄存器(稍后介绍)一同指向当前正在执行的那个地址。处理器执行时从这个寄存器指向的段(实模式)或内存(保护模式)中获取指令。除了跳转或其他分支指令之外,你无法修改这个寄存器的内容。

    DS 数据段,或数据选择器。这个寄存器的低16 bit连同ESI一同指向的指令将要处理的内存。同时,所有的内存操作指令 默认情况下都用它指定操作段(实模式)或内存(作为选择器,在保护模式。这个寄存器可以被装入任意数值,然而在这么做的时候需要小心一些。方法是,首先把数据送给AX,然后再把它从AX传送给DS(当然,也可以通过堆栈来做).

    ES 附加段,或附加选择器。这个寄存器的低16 bit连同EDI一同指向的指令将要处理的内存。同样的,这个寄存器可以被装入任意数值,方法和DS类似。

    FS F段或F选择器(推测F可能是Free?)。可以用这个寄存器作为默认段寄存器或选择器的一个替代品。它可以被装入任何数值,方法和DS类似。

    GS G段或G选择器(G的意义和F一样,没有在Intel的文档中解释)。它和FS几乎完全一样。

    SS 堆栈段或堆栈选择器。这个寄存器的低16 bit连同ESP一同指向下一次堆栈操作(push和pop)所要使用的堆栈地址。这个寄存器也可以被装入任意数值,你可以通过入栈和出栈操作来给他赋值,不过由于堆栈对于很多操作有很重要的意义,因此,不正确的修改有可能造成对堆栈的破坏。

    * 注意 一定不要在初学汇编的阶段把这些寄存器弄混。他们非常重要,而一旦你掌握了他们,你就可以对他们做任意的操作了。段寄存器,或选择器,在没有指定的情况下都是使用默认的那个。这句话在现在看来可能有点稀里糊涂,不过你很快就会在后面知道如何去做。

    指令指针寄存器:

    EIP 这个寄存器非常的重要。这是一个32位宽的寄存器 ,同CS一同指向即将执行的那条指令的地址。不能够直接修改这个寄存器的值,修改它的唯一方法是跳转或分支指令。(CS是默认的段或选择器)

    上面是最基本的寄存器。下面是一些其他的寄存器,你甚至可能没有听说过它们。(都是32位宽):

    CR0, CR2, CR3(控制寄存器)。举一个例子,CR0的作用是切换实模式和保护模式。

    还有其他一些寄存器,D0, D1, D2, D3, D6和D7(调试寄存器)。他们可以作为调试器的硬件支持来设置条件断点。

    TR3, TR4, TR5, TR6 和 TR? 寄存器(测试寄存器)用于某些条件测试。

    寄存器分类

    数据寄存器 - 用来储存整数数字(参考以下的浮点寄存器)。在某些简单/旧的 CPU,特别的数据寄存器是累加器,作为数学计算之用。

    地址寄存器 - 持有存储器地址,以及用来访问存储器。在某些简单/旧的CPU里,特别的地址寄存器是索引寄存器(可能出现一个或多个)。

    通用目的寄存器 (GPRs) - 可以保存数据或地址两者,也就是说他们是结合 数据/地址 寄存器的功用。

    浮点寄存器 (FPRs) - 用来储存浮点数字。

    常数寄存器 - 用来持有只读的数值(例如 0、1、圆周率等等)。

    向量寄存器 - 用来储存由向量处理器运行SIMD(Single Instruction, Multiple Data)指令所得到的数据。

    特殊目的寄存器 - 储存CPU内部的数据,像是程序计数器(或称为指令指针),堆栈寄存器,以及状态寄存器(或称微处理器状态字组)。

    指令寄存器(instruction register) - 储存现在正在被运行的指令

    索引寄存器(index register) - 是在程序运行实用来更改运算对象地址之用。

    在某些架构下,模式指示寄存器(也称为“机器指示寄存器”)储存和设置跟处理器自己有关的数据。由于他们的意图目的是附加到特定处理器的设计,因此他们并不被预期会成微处理器世代之间保留的标准。

    有关从 随机存取存储器 提取信息的寄存器与CPU(位于不同芯片的储存寄存器集合)

    存储器缓冲寄存器(Memory buffer register)

    存储器数据寄存器(Memory data register)

    存储器地址寄存器(Memory address register)

    存储器型态范围寄存器(Memory Type Range Registers)[1][2]

    寄存器:

    寄存器是计算机和其他数字系统中用来存储代码或数据的逻辑部件。它的主要组成部分是触发器。一个触发器能存储1位二进制代码,所以要存储n位二进制代码的寄存器就需要用n个触发器组成。一个4位的集成寄存器74LS175的逻辑电路图和引脚图分别如图8.7.1(a)、(b)所示。其中,RD是异步清零控制端。在往寄存器中寄存数据或代码之前,必须先将寄存器清零,否则有可能出错。1D~4D 是数据输入端,在CP 脉冲上升沿作用下,1D~4D端的数据被并行地存入寄存器。输出数据可以并行从1Q~4Q 端引出,也可以并行从1Q~4Q 端引出反码输出。

    5dbab668d273ed04a3e15131558d8282.png

    74LS175的功能如表8.7.1所示。

    41ac387e577a99bfc0df96a889c5fe17.png

    上面介绍的寄存器只有寄存数据或代码的功能。有时为了处理数据,需要将寄存器中的各位数据在移位控制信号作用下,依次向高位或向低位移动1位。具有移位功能的寄存器称为移位寄存器。

    展开全文
  • 寄存器作用

    千次阅读 2021-07-28 07:23:41
    [From]AX/EAX: 累加器,算术通用寄存器,与端口的通讯也用这个寄存器.BX/EBX: 基址寄存器.CX/ECX: 计数器,结合串处理指令使用.DX/EDX: 算术通用寄存器.和累加器结合表示双字长的数,其中累加器用于存低位数.[From]...

    [From]

    AX/EAX: 累加器,算术通用寄存器,与端口的通讯也用这个寄存器.

    BX/EBX: 基址寄存器.

    CX/ECX: 计数器,结合串处理指令使用.

    DX/EDX: 算术通用寄存器.和累加器结合表示双字长的数,其中累加器用于存低位数.

    [From]http://blog.csdn.net/huangwei1024/archive/2007/01/29/1496560.aspx

    2.1 寄存器组

    寄存器是CPU内部重要的数据存储资源,是汇编程序员能直接使用的硬件资源之一。由于寄存器的存取速度比内存快,所以,在用汇编语言编写程序时,要尽可能充分利用寄存器的存储功能。

    寄存器一般用来保存程序的中间结果,为随后的指令快速提供操作数,从而避免把中间结果存入内存,再读取内存的操作。在高级语言(如:C/C++语言)中,也有定义变量为寄存器类型的,这就是提高寄存器利用率的一种可行的方法。

    另外,由于寄存器的个数和容量都有限,不可能把所有中间结果都存储在寄存器中,所以,要对寄存器进行适当的调度。根据指令的要求,如何安排适当的寄存器,避免操作数过多的传送操作是一项细致而又周密的工作。有关“寄存器的分配策略”在后续课程《编译原理》中会有详细的介绍。

    由于16位/32位CPU是微机CPU的两个重要代表,所以,在此只介绍它们内部寄存器的名称及其主要功能。

    1、 16位寄存器组

    16位CPU所含有的寄存器有(见图2.1中16位寄存器部分):

    4个数据寄存器(AX、BX、CX和DX)

    2个变址和指针寄存器(SI和DI)

    2个指针寄存器(SP和BP)

    4个段寄存器(ES、CS、SS和DS)

    1个指令指针寄存器(IP)

    1个标志寄存器(Flags)

    2、 32位寄存器组

    32位CPU除了包含了先前CPU的所有寄存器,并把通用寄存器、指令指针和标志寄存器从16位扩充成32位之外,还增加了2个16位的段寄存器:FS和GS。

    32位CPU所含有的寄存器有(见图2.1中的寄存器):

    4个数据寄存器(EAX、EBX、ECX和EDX)

    2个变址和指针寄存器(ESI和EDI)

    2个指针寄存器(ESP和EBP)

    6个段寄存器(ES、CS、SS、DS、FS和GS)

    1个指令指针寄存器(EIP)

    1个标志寄存器(EFlags)

    070209104014.gif

    070209104023.gif

    070209104029.gif

    图2.1 CPU寄存器组的示意图

    2.1.2、通用寄存器的作用

    通用寄存器可用于传送和暂存数据,也可参与算术逻辑运算,并保存运算结果。除此之外,它们还各自具有一些特殊功能。汇编语言程序员必须熟悉每个寄存器的一般用途和特殊用途,只有这样,才能在程序中做到正确、合理地使用它们。

    表2.1 通用寄存器的主要用途

    寄存器的分类

    寄存器

    主 要 用 途

    数据

    寄存器

    AX

    乘、除运算,字的输入输出,中间结果的缓存

    AL

    字节的乘、除运算,字节的输入输出,十进制算术运算

    AH

    字节的乘、除运算,存放中断的功能号

    BX

    存储器指针

    CX

    串操作、循环控制的计数器

    CL

    移位操作的计数器

    DX

    字的乘、除运算,间接的输入输出

    变址

    寄存器

    SI

    存储器指针、串指令中的源操作数指针

    DI

    存储器指针、串指令中的目的操作数指针

    变址

    寄存器

    BP

    存储器指针、存取堆栈的指针

    SP

    堆栈的栈顶指针

    指令指针

    IP/EIP

    标志位寄存器

    Flag/EFlag

    32位

    CPU的

    段寄存器

    16位CPU的

    段寄存器

    ES

    附加段寄存器

    CS

    代码段寄存器

    SS

    堆栈段寄存器

    DS

    数据段寄存器

    新增加的

    段寄存器

    FS

    附加段寄存器

    GS

    附加段寄存器

    更详细的内容请点击:。

    2.1.3、专用寄存器的作用

    16位CPU内部有一个16位的标志寄存器,它包含9个标志位。这些标志位主要用来反映处理器的状态和运算结果的某些特征。各标志位在标志寄存器内的分布如图2.2所示。

    15

    14

    13

    12

    11

    10

    9

    8

    7

    6

    5

    4

    3

    2

    1

    0

    OF

    DF

    IF

    TF

    SF

    ZF

    AF

    PF

    CF

    31

    17

    16

    15

    14

    13

    12

    11

    10

    9

    8

    7

    6

    5

    4

    3

    2

    1

    0

    VM

    RF

    NT

    IOPL

    OF

    DF

    IF

    TF

    SF

    ZF

    AF

    PF

    CF

    图2.2 16位/32位标志寄存器的示意图

    上面9个标志位可分为二组:运算结果标志位(有背景色的标志位)和状态控制标志位。前者受和结果的影响,后者受一些控制指令执行的影响。

    更详细的内容请点击:。

    有些指令的执行会改变标志位(如:算术运算指令等),不同的指令会影响不同的标志位,有些指令的执行不改变任何标志位(如:MOV指令等),有些指令的执行会受标志位的影响(如:条件转移指令等),也有指令的执行不受其影响。

    程序员要想熟练运用这些标志位,就必须掌握每个标志位的含义、每条指令的执行条件和执行结果对标志位的作用。

    注意:虽然知道每个标志位在标志寄存器内的具体位置是有好处的,但通常情况下,没有这个必要。在使用第5.2.9节中的“”时,系统会自动引用相应标志位的值来决定是否需要“转移”的,所以,不必过分强调标志位在标志寄存器内的具体位置。

    展开全文
  • 值得指出的是,记住一些特殊功能寄存器复位后的主要状态,对于了解单片机的初态,减少应用程序中的初始化部分是十分必要的。说明:表中符号*为随机状态;A=00H,表明累加器已被清零;特殊功能寄存器初始状态特殊...
  • 威纶通触摸屏系统寄存器功能使用详解及地址列表一览
  • 对移位寄存器的使用做了详细说明,以及附有移位寄存器种类,如:层叠式移位寄存器的使用,还简单对移位寄存器和反馈节点作了区别等。
  • 公司业务需要,用到modbus协议,本质上很简单,只是第一次...这其中涉及到线圈、离散输入、保持、输入四种寄存器。  线圈寄存器:实际上就可以类比为开关量(继电器状态),每一个bit对应一个信号的开关状态。所以
  • 有些FPU还具有向量运算的功能,另外一些则专门的向量处理单元。 3、 通用寄存器组 通用寄存器组是一组最快的存储器,用来保存参加运算的操作数和中间结果。 对于x86指令集只支持8个通用寄存器的缺点,Intel最新CPU...

    满意答案

    dcebd7a0de6265b6ccae5ead692f1eab.png

    puiohwqy4

    2013.03.28

    dcebd7a0de6265b6ccae5ead692f1eab.png

    采纳率:43%    等级:12

    已帮助:7406人

    一、CPU的内核

    从结构上讲CPU内核分为两部分:运算器和控制器。

    (一) 运算器

    1、 算术逻辑运算单元ALU(Arithmetic and Logic Unit)

    ALU主要完成对二进制数据的定点算术运算(加减乘除)、逻辑运算(与或非异或)以及移位操作。在某些CPU中还有专门用于处理移位操作的移位器。

    通常ALU由两个输入端和一个输出端。整数单元有时也称为IEU(Integer Execution Unit)。我们通常所说的“CPU是XX位的”就是指ALU所能处理的数据的位数。

    2、 浮点运算单元FPU(Floating Point Unit)

    FPU主要负责浮点运算和高精度整数运算。有些FPU还具有向量运算的功能,另外一些则有专门的向量处理单元。

    3、 通用寄存器组

    通用寄存器组是一组最快的存储器,用来保存参加运算的操作数和中间结果。

    对于x86指令集只支持8个通用寄存器的缺点,Intel最新CPU采用了一种叫做“寄存器重命名”的技术,这种技术使x86CPU的寄存器可以突破8个的限制,达到32个甚至更多。

    4、 专用寄存器

    专用寄存器通常是一些状态寄存器,不能通过程序改变,由CPU自己控制,表明某种状态。

    (二) 控制器

    运算器只能完成运算,而控制器用于控制着整个CPU的工作。

    1、 指令控制器

    指令控制器是控制器中相当重要的部分,它要完成取指令、分析指令等操作,然后交给执行单元(ALU或FPU)来执行,同时还要形成下一条指令的地址。

    2、 时序控制器

    时序控制器的作用是为每条指令按时间顺序提供控制信号。时序控制器包括时钟发生器和倍频定义单元,其中时钟发生器由石英晶体振荡器发出非常稳定的脉冲信号,就是CPU的主频;而倍频定义单元则定义了CPU主频是存储器频率(总线频率)的几倍。

    3、 总线控制器

    总线控制器主要用于控制CPU的内外部总线,包括地址总线、数据总线、控制总线等等。

    4、中断控制器

    中断控制器用于控制各种各样的中断请求,并根据优先级的高低对中断请求进行排队,逐个交给CPU处理。

    40分享举报

    展开全文
  • 各个寄存器作用

    千次阅读 2021-10-28 09:08:53
    在此记录下寄存器的名称及作用,方便查看。 不同体系下寄存器名称: |63…32|31…16|15-8|7-0| |AH…AL…| |AX......| |EAX…| |RAX…| 不同寄存器作用: rax 作为函数返回值使用 rsp 栈指针寄存器,指向栈顶 rdi...
  • PC寄存器概述

    千次阅读 2021-04-24 15:21:05
    程序计数寄存器(Program Counter Register) 这里并非广义上所指的物理寄存器,或许将其翻译为PC计数器会更加贴切,并且也不容易... 在JVM规范中,每个线程都它自己的程序计数器,是线程私有的,生命周期与线程的.
  • 21个特殊功能寄存器(52系列是26个)不连续地分布在128个字节的SFR存储空间中,地址空间为80H-FFH,在这片SFR空间中,包含128个位地址空间,地址也是80H-FFH,但只有83个有效位地址,可对11个特殊功能寄存器的某些位...
  • 锁相环控制寄存器

    2020-11-13 00:07:10
    锁相环控制寄存器的具体功能参见图1和表1。  图1 锁相环控制寄存器(PLLCR)  表1 锁相环控制寄存器(PLLCR)功能定义  欢迎转载,信息来源维库电子市场网(www.dzsc.com) 来源:ks99
  • CPU中寄存器作用及说明

    千次阅读 2020-02-04 14:23:04
    各种计算机的CPU可能不同,但是在CPU中至少至少要六类寄存器:①指令寄存器(IR);②程序计数器(PC);③数据地址寄存器(AR);④缓冲寄存器(DR);⑤通用寄存器(R0~R3);⑥状态字寄存器(PSW)。 数据缓冲...
  • HISPCP和LOSPCP控制寄存器分别控制高/低速的外设时钟,具体功能参见图1、图2和表1、表2。  图1 高速外设时钟寄存器(HISPCP)  图2 低速外设时钟寄存器(△OsPCP)  表1 高速外设时钟寄存器(HISPCP)功能...
  • 寄存器是CPU内部的元件,寄存器拥有非常高的读写速度,所以在寄存器之间的数据传送非常快。  寄存器的用途:  1.可将寄存器内的数据执行算术及逻辑运算。  2.存于寄存器内的地址可用来指向内存的某个位置,即...
  • 21个特殊功能寄存器(52系列是26个)不连续地分布在128个字节的SFR存储空间中,地址空间为80H-FFH,在这片SFR空间中,包含128个位地址空间,地址也是80H-FFH,但只有83个有效位地址,可对11个特殊功能寄存器的某些...
  • 什么是通用寄存器

    千次阅读 2021-12-24 16:57:02
    通用寄存器:这类寄存器在处理器中数量较多、使用频度较高,具有多种用途。例如它们可用来存放指令需要的操作数据,又可用来存放地址以便在主存或I/O接口中指定操作数据的位置。 通用寄存器(General-Purpose ...
  • 简述寄存器种类及其功能

    千次阅读 2021-03-22 10:48:46
    那么寄存器到底起到了什么作用寄存器的种类及其功能又是怎么样的,我们拭目以待。 寄存器是由具有存储功能的触发器组合起来构成的,是CPU内部用来存放数据的一些小型存储区域,用来暂时存放参与运算的数据和运算...
  • 8086CPU哪些寄存器组成?各有什么用途?标志寄存器的各标志位在什么情况下置位?
  • 移位寄存器

    2020-12-09 01:57:52
    移位寄存器是暂时存放数据的部件,同时它还具有移位功能。 一、特点和分类 从逻辑结构上看,移位寄存器有以下两个显著特征:(1)移位寄存器是由相同的寄存单元所组成。一般说来,寄存单元的个数就是移位寄存器的...
  • 8051 单片机内部 21 个特殊功能寄存器,在物理上是分散在片内各功能部件中,在数学上把它们组织在内部数据存储器地址空间 80H~FFH 中,以便能使用统一的直接寻址方式来访问。
  • (转)汇编中各寄存器作用

    千次阅读 2021-07-28 06:13:12
    反汇编里rep stos dword ptr es:[edi] 是做什么的?参考资料:1....
  • 堆栈指针寄存器 SP详解以及栈的作用

    万次阅读 多人点赞 2019-05-06 08:51:10
    这是因为,clock_init用到的r2,r3等寄存器,和前面调用clock_init前用到的寄存器r0,没有冲突,故此处不用push保存,寄存器要注意,r14,即lr,前面调用clock_init时,用的bl指令,所以会自动把跳转时的pc值赋值...
  • SPI寄存器

    2020-11-12 22:43:59
    SPI接口寄存器的地址及功能如表所列。  表 SPI接口寄存器 欢迎转载,信息来源维库电子市场网(www.dzsc.com) 来源:ks99
  • cortex-m3 R14(LR)寄存器作用

    千次阅读 2019-03-21 15:09:35
    LR寄存器作用主要由两个: 一是用来保存子程序的返回地址; 当通过BL或BLX指令调用子程序时,硬件自动将子程序返回地址保存在R14寄存器中。子程序返回时,把R14的值 复制到程序计数器PC,即可实现子程序返回...
  • 定时器周期寄存器

    2020-11-12 22:10:38
    图给出了定时器周期寄存器的各位分配,表给出了-定时器,周期寄存器的功能定义。  图 定时器周期寄存器 ... 表 定时器周期寄存器功能定义 欢迎转载,信息来源维库电子市场网(www.dzsc.com) 来源:ks99
  • UVM寄存器模型的作用和优势?

    千次阅读 2021-09-15 09:34:03
    在验证的过程中,只有先保证寄存器功能正确,才能使寄存器模型能够准确反映硬件的状态。那么怎么通过寄存器模型完成对寄存器的访问?寄存器模型又具有什么样的优势呢? 一、对寄存器模型的配置怎么反映到总线上? ...
  • MIPS的32个通用寄存器的名称和用途详细资料概述

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 358,418
精华内容 143,367
关键字:

寄存器有什么功能