精华内容
下载资源
问答
  • [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节中的“”时,系统会自动引用相应标志位的值来决定是否需要“转移”的,所以,不必过分强调标志位在标志寄存器内的具体位置。

    展开全文
  • arm寄存器功能

    2018-06-04 23:26:29
    1. Cortex-A寄存器组织如下图: 未... 寄存器功能说明r0-12 存取数据,临时数据r13:sp 用于指向不同模式的栈顶。栈,每种模式都需要开辟一块内存,用于在该模式下 函数调用,临时分配的数据存放在此处,r14 : l...

    1. Cortex-A寄存器组织如下图:

     

     

    未分组寄存器:r0-r7  r15  cpsr, cpu在任何模式下看到的 这几个寄存器都是一样的

    分组寄存器 r8-r14 在不同模式下看到的这几个寄存器是不一样的

     

    2. 寄存器功能说明

    r0-12   存取数据,临时数据

    r13:sp 用于指向不同模式的栈顶。栈,每种模式都需要开辟一块内存,用于在该模式下 函数调用,临时分配的数据存放在此处,

    r14 : lr 程序跳转的时候,返回地址保存到此处

    r15 :pc 要执行的西一条指令地址,就存放在此处,每次指令执行完,就自动+4

    CPSR:程序状态寄存器。程序执行的时候,有很多临时标记位,结果是0 是否溢出,是否有借位,是否有 进位,当前cpu模式,

    SPSR:用于模式切换,将切换前的 cpsr 保存到 新的模式的 spsr,模式切换回去的时候,再将spsr的内容还原到cpsr。

     

    3. 程序状态寄存器(cpsr)如下图:

    4. 程序计数器PC(r15)

    pc的作用:下一条要执行的指令的地址,就存放在pc中,我们可以通过向pc赋值,来控制程序跳转

    当处理器执行在ARM状态:

    1)所有指令32bits宽

    2)所有指令必须word对齐

    3)所有pc值由[31:2]决定,bits[1:0]未定义(所以指令不能halfword/byte对齐)

     


    展开全文
  • 寄存器功能

    2011-11-17 15:17:50
    时钟周期是一个时间的量,一般规定10纳秒(ns)为一个时钟周期。一条汇编语句的执行时间是1~4个时钟周期。一条c语句是由几条汇编语句...寄存器BX称为基地址寄存器(Base Register),可作为存储器指针来使用;  寄

    时钟周期是一个时间的量,一般规定10纳秒(ns)为一个时钟周期。一条汇编语句的执行时间是1~4个时钟周期。一条c语句是由几条汇编语句组成(具体几条可以查询相应的表)。


    寄存器AX和AL通常称为累加器(Accumulator),可用于乘、除、输入/输出等操作,它们的使用频率很高;

     
    寄存器BX称为基地址寄存器(Base Register),可作为存储器指针来使用; 


    寄存器CX称为计数寄存器(Count Register),在循环和字符串操作时,要用它来控制循环次数,在位操作中,当移多位时,要用CL来指明移位的位数;


    寄存器DX称为数据寄存器(Data Register),在进行乘、除运算时,它可作为默认的操作数参与运算,也可用于存放I/O的端口地址。


    SI是源变址寄存器,DI是目的变址寄存器。可以用来存放数据、地址,功能类似、用法类似、一般使用哪个都可以。但需要注意的是:在串处理指令中,SI用作隐含的源串地址,默认在DS中;DI用做隐含的目的串地址,默认在ES中;此时不能混用。
     


    EIP:指令指针,存放下一个CPU指令存放的内存地址(一般代码是不能直接访问EIP的值),该指针永远指向下一条待执行的指令地址。


      EBP:基址指针寄存器,保存当前线程的栈底指针,该指针永远指向系统栈最上面一个栈帧的底部。
           
    ESP:堆栈指针寄存器,保存当前线程的栈顶指针,该指针永远指向系统栈最上面一个栈帧的栈顶(即最近一次入栈数据单元的首地址)。


    标志寄存器EFL,里面包含了指令操作后的各种状态标志。如OF溢出标志,CF进位标志等。
    展开全文
  • 寄存器

    千次阅读 2020-12-18 13:03:51
    1. 寄存器 集成8位寄存器【74HC/HCT374】 功能表 2. 移位寄存器 (1) 基本的移位寄存器 (2) 多功能双向移位寄存器 工作原理 典型的多功能4位双向移位寄存器


    注意:
    只有在寄存器中,低位在前,高位在后

    0. 基本概念

    寄存: 把二进制数据或代码暂时存储起来的操作

    寄存器: 具有寄存功能的电路

    双向移位寄存器: 能控制数据的流向,实现数据的双向移动的寄存器。

    并行输入输出: 每一位数据对应一个输出端,在CP的作用下,各位同时输入或输出。
    串行输入输出: 只有一个输入输出端,在CP的作用下,各数码逐次输入输出。

    右移: 数据从低位触发器移向高位。

    左移: 数据从高位触发器移向低位。

    1. 基本寄存器

    (1) 门电路构成的寄存器

    在这里插入图片描述

    • 工作原理: 一个触发沿的到来,时间只够触发器工作一次,所有的输入D前进到D触发器的输出端,再由三态门控制是否输出出去。

    • 功能: 用来寄存一组二进制数据或代码

    • 特点:

      • 只能并行输入,也只能并行输出
      • 一个触发器存储存储1位二进制信号

    (2) 集成8位寄存器【74HC374】

    • 功能表
      在这里插入图片描述

    2. 移位寄存器

    (1) 单向移位寄存器

    在这里插入图片描述

    • 工作原理: 一个触发沿的时刻只够各个D触发器工作一次,所以输入D一次向前一位。

    • 特点: 只能用脉冲边沿敏感的触发器,而不能用电平敏感的锁存器

    (2) 双向4位移位寄存器【74HCT194】

    ① 逻辑符号
    在这里插入图片描述
    此时低位在左,高位在右

    • C P CP CP:脉冲输入。
    • Q 0 Q 1 Q 2 Q 3 Q_0Q_1Q_2Q_3 Q0Q1Q2Q3:输出端。
    • D 0 D 1 D 2 D 3 D_0D_1D_2D_3 D0D1D2D3:输入端
    • C R CR CR:异步清零端。低电平有效
    • S 1 S 0 S_1S_0 S1S0:输入控制端。
    • D S R D_{SR} DSR:右移时串入信号。串行输入,并行输出
    • D S L D_{SL} DSL:左移时串入信号。

    ② 功能表

    在这里插入图片描述

    C R ‾ = 1 时 \overline{CR} = 1时 CR=1功能
    S1 = 0,S0 = 0保持
    S1 = 1,S0 = 0左移
    S1 = 0,S0 = 1右移
    S1 = 1,S0 = 1置数D0D1D2D3

    ③ 位数拓展

    在这里插入图片描述

    (3) 应用

    *根据状态图或时序图来判断

    • 模为n的环形计数器

    • 模为n的扭环形计数器

    • 时序脉冲产生器

    展开全文
  • 寄存器作用

    2015-10-13 22:00:11
    4个数据寄存器(EAX、EBX、ECX和EDX) 2个变址和指针寄存器(ESI和EDI) 2个指针寄存器(ESP和EBP) 6个段寄存器(ES、CS、SS、DS、FS和GS) 1个指令指针寄存器(EIP) 1个标志寄存器(EFlags) 1、数据寄存器 数据...
  • 寄存器,寄存器是什么意思寄存器定义寄存器是中央处理器内的组成部分。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和位址。在中央处理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序计数器...
  • 本文主要介绍了51单片机各寄存器功能
  • 以上是8086寄存器的整体概况, 自80386开始,PC进入32bit时代,其寻址方式,寄存器大小, 功能等都发生了变化: =============================以下是80386的寄存器的一些资料========================= 寄存器都是32...
  • 51单片机寄存器功能,这样的特殊功能寄存器51单片机共有21个并且都是可寻址的列表如下(其中带*号的为52系列所增加的特殊功能寄存器)
  • 输出寄存器作用

    2015-03-29 19:33:00
    一般输出都是先定义一个寄存器来暂存数据,由此寄存器再输出给输出端口或内部信号,是为了避免当执行别的操作时输出失去驱动源。 例如: rData <= RAM[ Read_Addr_Sig ]; assign Read_Data = rData; //引脚...
  • 51单片机寄存器功能

    2012-07-10 17:10:20
    一些特殊的51单片机寄存器功能的说明,及有关的设置
  • 21个特殊功能寄存器(52系列是26个)不连续地分布在128个字节的SFR存储空间中,地址空间为80H-FFH,在这片SFR空间中,包含有128个位地址空间,地址也是80H-FFH,但只有83个有效位地址,可对11个特殊功能寄存器的某些...
  • 寄存器作用是存储二进制代码,它是由具有存储功能的触发器组合起来构成的。一个触发器可以存储1位二进制代码,故存放n位二进制代码的寄存器,需用n个触发器来构成。本文操作环境:windows10系统,Lenovo 小新Air14...
  • CM3 拥有通用寄存器 R0-R15 以及一些特殊功能寄存器。 R0-R12 是最“通用目的”的,但是绝大多数的 16 位指令只能使用 R0-R7(低组寄存器),而 32 位的 Thumb-2 指令则可以访问所有通用寄存器。特殊功能寄存器有预...
  • 21个特殊功能寄存器(52系列是26个)不连续地分布在128个字节的SFR存储空间中,地址空间为80H-FFH,在这片SFR空间中,包含有128个位地址空间,地址也是80H-FFH,但只有83个有效位地址,可对11个特殊功能寄存器的某些位...
  • C51单片机寄存器功能

    2014-03-04 08:15:46
    51单片机内部寄存器配置一览,非常详细明了
  • 51单片机寄存器功能一览表(最全),方便您快速查找寄存器的功能
  • 在学习汇编语言时,我们知道1个程序中寄存器其实是对应CPU中的1个硬件寄存器的,由于寄存器是在CPU中的,访问速度比内存条还快,所以寄存器是一个很稀缺的资源,数量少,intel在设计寄存器时,基本上也规定了这些...
  • 寄存器是CPU内部的元件,寄存器拥有非常高的读写速度,所以在寄存器之间的数据传送非常快。  寄存器的用途:  1.可将寄存器内的数据执行算术及逻辑运算。  2.存于寄存器内的地址可用来指向内存的某个位置,即...
  • 寄存器分类

    2020-11-13 04:36:40
    移位寄存器除具寄存器功能外,所存储的数码在时钟脉冲的作用下还可以移位。根据数码的移位方向分为左移寄存器和右移寄存器。左移寄存器是指在时钟脉冲的作用下,低位寄存器的数码送给高位寄存器,作为高位寄存器的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 312,846
精华内容 125,138
关键字:

寄存器的功能是