精华内容
下载资源
问答
  • 寄存器运用
    千次阅读
    2021-07-28 06:43:33

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

    寄存器定义

    寄存器是中央处理器内的组成部分。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和位址。在中央处理器的控制部件中,包含的寄存器有指令寄存器(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位。具有移位功能的寄存器称为移位寄存器。

    更多相关内容
  • STM32 系列之 DAC 寄存器运用于理解

    千次阅读 2018-06-10 16:41:49
    在这里,我也不多BB,基本是看了原子的PDF之后,自己理解。所以可能比较简略 单个DAC通道如下: VDDA 和VSSA为模拟电源...控制DAC的寄存器是 DAC_CR 共32位,底16位用于控制通道1,高16位用于控制通道2. 标准库代码:

    在这里,我也不多BB,基本是看了原子的PDF之后,自己理解。所以可能比较简略


    单个DAC通道如下:



    VDDA 和VSSA为模拟电源端。  

    输出电压 = Vref+ * (DORx/2^n)                  n为DAC的数据位数

    DORx 不能直接用户操作,所以只能操作DHRx。(看上图)


    控制DAC的寄存器是 DAC_CR  共32位,底16位用于控制通道1,高16位用于控制通道2.



    标准库代码:


    展开全文
  • FANUC数据寄存器和位置寄存器运用一、寄存器指令 Registers① 寄存器指令R[i] i=1~200② 位置寄存器指令PR[i] i=1~100③ 位置寄存器要素指令PR[i,j] i=1~100,j=1~6其中,i表示寄存器的号码;j表示位置寄存器的...

    FANUC数据寄存器和位置寄存器的运用

    一、寄存器指令 Registers① 寄存器指令R[i] i=1~200

    ② 位置寄存器指令PR[i] i=1~100

    ③ 位置寄存器要素指令PR[i,j] i=1~100,j=1~6

    其中,i表示寄存器的号码;j表示位置寄存器的要素号码;

    若需要对默认寄存器数量进行扩展,可在控制启动模式中按图1所示完成设置:

    (通过 PREV+NEXT+重启控制柜 进入控制启动(CTRL START)模式)

    1649104824364.png

    图1

    (1)数值寄存器指令R[i]

    数值寄存器指令支持“=”(赋值),“+”,“-”,“*”,“/”,“MOD”,“DIV”算术运算。

    1649546524364.png

    (2)位置寄存器指令PR[i]

    位置寄存器指令支持“=”(赋值),“+”,“-”算术运算。

    1650304624364.png

    (3)位置寄存器要素指令PR[i,j]

    位置寄存器要素指令支持“=”(赋值),“+”,“-”,“*”,“/”,“MOD”,“DIV”算术运算。

    31a562437713eb6381f4a32bfedbc77c.png

    二、查看寄存器值(1)查看数值寄存器的值

    步骤:

    1)按【Data】键,再按F1【TYPE】(类型)出现以下内容(如下图2所示):

    Registers:数值寄存器;

    Position Reg:位置寄存器;

    4a3d0e74f4e1e26a7d9878ca1acfdd20.png

    图2

    2)移动光标选择【Registers】(数值寄存器),按【ENTER】(回车)值键,如图3所示;

    b83152af37482d86827b49c9c73406c6.png

    图3

    3)把光标移至寄存器号后,【ENTER】(回车)键,输入注释;

    4)把光标移到值处,使用数字键可直接修改数值。

    (2)查看位置寄存器的值

    步骤:

    1)按【Data】键,显示右图4;

    b95244a781a1fc49052c09348bceb0e1.png

    图4

    2)按F1【TYPE】(类型),出现以下内容:

    Registers:数值寄存器;

    Position Reg:位置寄存器;

    3)移动光标选择【Position Reg】(位置寄存器),按【ENTER】(回车)键,如右图5所示;

    1716312524364.png

    图5

    4)把光标移至寄存器号后,按【ENTER】(回车)键 ,输入注释。

    5)把光标移到值处,按F4【POSITION】(位置)键,显示具体数据信息;

    “ R ”表示已完成示教的位置寄存器

    “ * ”表示尚未示教的位置寄存器

    6)按F5【REPRE】(形式)键,如下图6所示,移动光标到所需要的项并按【ENTER】(回车)键,或通过数字键,可以切换数据形式;

    •    Cartesian(正交):直角坐标系

    •    Joint(关节):关节坐标系

    8adc0ca4054bf43dd9915cdc7bf822fe.png

    图6

    把光标移至数据处,可以用数字键直接修改数据。

    展开全文
  • 数字电路基本寄存器

    2018-12-16 08:59:38
    (2) 掌握灵活运用Verilog HDL语言进行各种描述与建模的技巧和方法 2. 实验要求: (1) 使用合适的方法来编程实现规定功能的4位寄存器 (2) 课前任务:在Xilink ISE上完成创建工程、编辑程序源代码、编译、综合、仿真、...
  • 1. 学习使用Verilog HDL语言进行时序电路的设计方法 2. 掌握灵活运用Verilog HDL语言进行行为级语言描述的技巧和方法; 3. 学习寄存器堆的数据传送和读写工作原理,掌握寄存器堆的设计方法.
  • 计算机组成原理 实验报告 学 号 姓 名 提交日期 成 绩 东北大学秦皇岛分校 实验三 通用寄存器存储器实验 1实验目的与要求 实验目的 熟悉通用寄存器的数据通路 掌握通用寄存器的构成和运用 熟悉和了解存储器组织与...
  • 在布线过程中,一方面运用算法增加防火墙寄存器滤掉毛刺;另一方面通过修改代价函数,动态地调节输入信号的路径,使信号到达查找表输入端的时间基本趋于一致,从而有效地减少毛刺,降低电路的动态功耗。实验结果表明...
  • 分析了移位寄存器型计数器工作时的状态转换过程,提出了移位寄存器型计数器的设计可在保持右移移位寄存器内部结构不变的基础上,只求解第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节中的“”时,系统会自动引用相应标志位的值来决定是否需要“转移”的,所以,不必过分强调标志位在标志寄存器内的具体位置。

    展开全文
  • 实验六 移位寄存器及其应用

    万次阅读 多人点赞 2021-05-20 20:37:58
    1、复习有关寄存器的内容,弄懂移位寄存器工作的基本原理。 2、查阅74LS194(或CC40194)的有关资料,熟悉其逻辑功能及引脚排列。 3、绘出实验内容的详细电路图,并拟出实验所需的测试记录表格。 二、实验目的 1、...
  • 本文结合具体的测试用例以及代码,具体介绍了UVM中加入寄存器模型的方法步骤,以及如何查看寄存器的功能覆盖率。
  • 移位寄存器型彩灯控制器-Multisim仿真设计实例源文件+说明文档,Multisim12设计,可以做为你的学习及课程设计参考。 一、课程设计(综合实验)的目的与要求 1.目的: 1.1综合实验是教学中必不可少的重要环节,通过...
  • UVC的全称是UVM Component,往往是我们构建环境中所用到的最底层的组件,它虽然“小”,但却十分重要,
  • 实验2-寄存器设计1

    2022-08-08 17:41:38
    1、实验题目一:8位寄存器设计与实现1.1 实验内容运用Verilog的结构描述法,使用理论课介绍的D触发器完成带有异步清零 clrn 和 同步使能wen的8位
  • STM32F1芯片寄存器.rar

    2019-07-11 10:35:29
    内含两个高清资源,一个2010版的中文STM32F1系列的芯片寄存器数据手册;...官方库函数使用方便,但不能过分依赖,熟知下层的寄存器手册也是有必要的,各个模块的有介绍,各个寄存器每一位的介绍都有,利于立即运用
  • (转)汇编中各寄存器的作用

    千次阅读 2021-07-28 06:13:12
    分别是:OF:溢出标志位,DF:方向标志位,IF:中断允许标志位,TF:跟踪标志位,SF:符号标志位,ZF:零标志位,AF:辅助进位标志位,PF:奇偶标志位,CF:进位标志位 4)段寄存器(Segment Register) 为了运用所有的...
  • 汇编语言:寄存器相关概念初理解(通用寄存器、段寄存器、专用寄存器) 1.寄存器分类 一图抵千言: 2.详细介绍及注意事项 (1)AX BX CX DX被称为通用寄存器(可被分割为2个8位寄存器),存放数据的,数据寄存器(16...
  • 这是STM32寄存器版本指南,里面关于寄存器的详细讲解。适合新手阅读运用
  • vim寄存器使用详解

    2020-12-24 08:04:47
    vim寄存器使用详解寄存器用于...Vim有很多不同类型的寄存器,各司其职,各具其能,若得灵活运用,会令编辑工作轻松高效。本文以Vim中常见的问题为例,介绍各类寄存器的功能和用法。1.编辑操作中的常用功能:hv_p:hg...
  • 8086数据寄存器介绍通用寄存器在8086CPU中,通用寄存器有8个,分别是AX,BX,CX,DX,SP,BP,SI,DI下面介绍这几个通用寄存器:数据寄存器(AX,BX,CX,DX):数据寄存器有AX,BX,CX,DX四个组成,由于在8086之前的...
  • ** 都是 与或非的灵活运用 **
  • nrf2401寄存器

    2013-04-16 11:30:11
    nrf2401所有寄存器介绍及运用,学习2401必备
  • 2.特殊功能寄存器三个主要位置及功能 3.中断的初始化以及中断服务函数 ———————————————————————————————————————— 中断结构系统的中断源 中断源 符号 类型 产生条件 ...
  • 文章目录一、两种寄存器访问方式1.1.前门访问1.2. 后门访问1.2.1.访问前的地址映射1.2.2.后门访问1.3.前/后门访问的比较二、两种跟踪寄存器值的方法——prediction2.1.自动预测(auto prediction)2.2.显式预测 一、...
  • 和 A 的ascii比较,修改标志寄存器  jb s  ; 小于 A 就跳转,不用大小写转换  cmp byte ptr[si] , 7Ah ; 和 z 的ascii比较,修改标志寄存器  ja s ; 大于 z 就跳转  and byte ...
  • 实验五 寄存器及其应用 一实验目的 1进一步熟悉双稳态触发器的运用 2掌握寄存器逻辑功能及使用方法 3通过对 74LS194 4 位双向移位寄存器的逻辑功能测试掌握其功能及使用方法 4利用 74LS194 双向移位寄存器分别实现...
  • 什么是段寄存器,数据寄存器

    千次阅读 2020-04-01 12:18:19
    寄存器(Register)是CPU内部的元件,所以在寄存器之间的数据传送非常快。用途:1.可将寄存器内的数据执行算术及逻辑运算。 2.存于寄存器内的地址可用来指向内存的某个位置,即寻址。3.可以用来读写数据到电脑的周边...
  • 寄存器

    千次阅读 2016-09-04 22:24:52
    8086 有14个16位寄存器,这14个寄存器按其用途可分为(1)通用寄存器、(2)指令指针、(3)标志寄存器和(4)段寄存器等4类。 通用寄存器 有8个, 又可以分成2组,一组是数据寄存器(4个),另一组是指针寄存器及...
  • 对于8086CPU中14个寄存器:AX、BX、CX、DX、SI、DI、SP、BP、IP、CS、SS、DS、ES、PSW(标志寄存器);进行了详尽的介绍!
  • 寄存器到底是个什么东西?

    千次阅读 多人点赞 2019-11-16 17:18:38
    一. 什么是寄存器?什么是寄存器映射? 给有特定功能的内存单元取一个别名,这个别名就是我们常说的寄存器,取名的过程就叫寄存器映射。 你用define宏定义去操作的,其实就是最底层的内存地址,只不过我们操作的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 23,483
精华内容 9,393
关键字:

寄存器运用