精华内容
下载资源
问答
  • 寄存器的功能简介

    2020-10-01 11:26:34
    对于一些需要保存数据,我们通常使用哪些寄存器进行保存? $s0-$s7 通常用来保存返回地址的寄存器是哪一个? $ra 通常用来保存函数返回值的寄存器是哪些? $v0-$v1 通常若函数只需要传入三个变量,则这三个变量会...

    呵呵
    对于一些需要保存的数据,我们通常使用哪些寄存器进行保存?
    $s0-$s7

    通常用来保存返回地址的寄存器是哪一个?
    $ra

    通常用来保存函数返回值的寄存器是哪些?
    $v0-$v1

    通常若函数只需要传入三个变量,则这三个变量会被存在哪些寄存器中?
    $a0-$a3

    通常若函数需要传入十个变量,则会用到以下哪个寄存器来存储变量?
    $sp

    呵呵
    推荐阅读,比教程不知道高到哪里去了。
    https://blog.csdn.net/frozenshore/article/details/44706299

    展开全文
  • ARM寄存器功能介绍

    2019-06-17 10:39:15
    ARM寄存器功能介绍 ARM 寄存器组介绍 ARM处理器一般共有37个寄存器,其中包括: (1)31个通用寄存器,包括PC(程序计数器)在内,都是32位的寄存器。 (2)6个状态寄存器,都是32位的寄存器。 ARM处理器...

    ARM寄存器及功能介绍

    1. ARM 寄存器组介绍

     

    ARM 处理器一般共有 37 个寄存器,其中包括:

    (1) 31 个通用寄存器,包括 PC(程序计数器)在内,都是 32 位的寄存器。

    (2) 6 个状态寄存器,都是 32 位的寄存器。

    ARM 处理器共有 7 种不同的处理器模式:

             用户模式(User),快速中断模式(FIQ),普通中断模式(IRQ),管理模式(Svc),数据访问中止模式(Abort),未定义指令中止模式(Und),系统模式(Sys),

             在每一种处理器模式中有一组相应的寄存器。在任意一种处理器模式下,可见的寄存器包括 15 个通用寄存器(R0~R14)、一个或者二个状态寄存器以及程序计数器(PC)。在所有的寄存器中,有些是各模式共用同一个物理寄存器,有些寄存器是各个模式自己拥有独立的物理寄存器 

           其中 r0~r3 主要用于子程序间传递参数, r4~r11 主要用于保存局部变量,但在 Thumb 程序中,通常只能使用r4~r7 来保存局部变量; r12 用作子程序间scratch 寄存器,即 ip 寄存器; r13 通常用做栈指针,即 sp; r14 寄存器又被称为连接寄存器(lr),用于保存子程序以及中断的返回地址; r15 用作程序计数器(pc),由于 ARM 采用了流水线机制,当正确读取了 PC 的值后,该值为当前指令地址加 8 个字节,即 PC 指向当前指令的下两条指令地址。

          CPSR和SPSR都是程序状态寄存器,其中SPSR是用来保存中断前的CPSR中的值,以便在中断返回之后恢复处理器程序状态。

    2.CPSR寄存器详解

     

             所有处理器模式下都可访问当前程序状态寄存器CPSR。CPSR中包含条件码标志、中断禁止位、当前处理器模式以及其他状态和控制信息。在每种异常模式下都有一个对用的程序状态寄存器SPSR。当异常出现时,SPSR用于保存CPSR的状态,以便异常返回后恢复异常发生时的工作状态。

    (1)条件码标志

    N、Z、C、V,最高4位称为条件码标志。ARM的大多数指令可以条件执行的,即通过检测这些条件码标志来决定程序指令如何执行。

    各个条件码的含义如下:

    N:在结果是有符号的二进制补码情况下,如果结果为负数,则N=1;如果结果为非负数,则N=0。

    Z:如果结果为0,则Z=1;如果结果为非零,则Z=0。

    C:其设置分一下几种情况:

                   对于加法指令(包含比较指令CMN),如果产生进位,则C=1;否则C=0。

                   对于减法指令(包括比较指令CMP),如果产生借位,则C=0;否则C=1。

                   对于有移位操作的非法指令,C为移位操作中最后移出位的值。

                   对于其他指令,C通常不变。

    V:对于加减法指令,在操作数和结果是有符号的整数时,如果发生溢出,则V=1;如果无溢出发生,则V=0;对于其他指令,V通常不发生变化。

    (2)控制位的作用在图1中可以看出,在这里就不阐述了。

    二:CPSR与CPSR_c的区别

          CPSR_c指的是CPSR的低8位控制位

          CPSR有4个8位区域:标志域(F)、状态域(S)、扩展域(X)、控制域(C)

          MSR - Load specified fields of the CPSR or SPSR with an immediate constant, or from the contents of a general-purpose register.

         Syntax:

         MSR{cond} <psr>_<fields>, #immed_8r MSR{cond} <psr>_<fields>, Rm where: cond is an optional condition code. <psr> is either CPSR or SPSR. <fields> specifies the field or fields to be moved. <fields> can be one or more of:

    c control field mask byte (PSR[7:0]) x extension field mask byte (PSR[15:8]) s status field mask byte (PSR[23:16) f flags field mask byte (PSR[31:24]). immed_8r is an expression evaluating to a numeric constant. The constant must correspond to an 8-bit pattern rotated by an even number of bits within a 32-bit word. Rm is the source register.

          C 控制域屏蔽字节(psr[7:0])
          X 扩展域屏蔽字节(psr[15:8])
          S 状态域屏蔽字节(psr[23:16])
          F 标志域屏蔽字节(psr[31:24])
    常用于MRS或MSR指令,用于psr中的值转移到寄存器或把寄存器的内容加载到psr中.
    如:

    MSR CPSR_c,#0xd3

    展开全文
  • 在单片机中有一些独立存储单元是用来控制这些器件,被称之为特殊功能寄存器(SFR)。  <特殊功能寄存器地址映象表(一)>  <特殊功能寄存器地址映象表(二)>  <...
  • 寄存器的功能是存储二进制代码,它是由具有存储功能的触发器组合起来构成的。一个触发器可以存储1位二进制代码,故存放n位二进制代码的寄存器,需用n个触发器来构成。 按照功能的不同,可将寄存器分为基本寄存器和...

    寄存器

    寄存器的功能是存储二进制代码,它是由具有存储功能的触发器组合起来构成的。一个触发器可以存储1位二进制代码,故存放n位二进制代码的寄存器,需用n个触发器来构成。

    按照功能的不同,可将寄存器分为基本寄存器和移位寄存器两大类。基本寄存器只能并行送入数据,也只能并行输出。移位寄存器中的数据可以在移位脉冲作用下依次逐位右移或左移,数据既可以并行输入、并行输出,也可以串行输入、串行输出,还可以并行输入、串行输出,或串行输入、并行输出,十分灵活,用途也很广。
    这个问题需要细化,会的读者评论区留言

    展开全文
  • (1) 31 个通用寄存器,包括 PC(程序计数器)在内,都是 32 位的寄存器。 (2) 6 个状态寄存器,都是 32 位的寄存器。 ARM 处理器共有 7 种不同处理器模式: 用户模式(User),快速中断模式(FIQ),普通中断...

    1、ARM 寄存器组介绍

    ARM 处理器一般共有 37 个寄存器,其中包括:

    (1) 31 个通用寄存器,包括 PC(程序计数器)在内,都是 32 位的寄存器。
    (2) 6 个状态寄存器,都是 32 位的寄存器。
    ARM 处理器共有 7 种不同的处理器模式:
    用户模式(User),快速中断模式(FIQ),普通中断模式(IRQ),管理模式(Svc),数据访问中止模式(Abort),未定义指令中止模式(Und),系统模式(Sys),
    在每一种处理器模式中有一组相应的寄存器。在任意一种处理器模式下,可见的寄存器包括 15 个通用寄存器(R0~R14)、一个或者二个状态寄存器以及程序计数器(PC)。在所有的寄存器中,有些是各模式共用同一个物理寄存器,有些寄存器是各个模式自己拥有独立的物理寄存器在这里插入图片描述

    其中 r0~r3 主要用于子程序间传递参数, r4~r11 主要用于保存局部变量,但在 Thumb 程序中,通常只能使用 r4~r7 来保存局部变量; r12 用作子程序间scratch 寄存器,即 ip 寄存器; r13 通常用做栈指针,即 sp; r14 寄存器又被称为连接寄存器(lr),用于保存子程序以及中断的返回地址; r15 用作程序计数器(pc),由于 ARM 采用了流水线机制,当正确读取了 PC 的值后,该值为当前指令地址加 8 个字节,即 PC 指向当前指令的下两条指令地址。

    CPSR和SPSR都是程序状态寄存器,其中SPSR是用来保存中断前的CPSR中的值,以便在中断返回之后恢复处理器程序状态。
    2.CPSR寄存器详解

    所有处理器模式下都可访问当前程序状态寄存器CPSR。CPSR中包含条件码标志、中断禁止位、当前处理器模式以及其他状态和控制信息。在每种异常模式下都有一个对用的程序状态寄存器SPSR。当异常出现时,SPSR用于保存CPSR的状态,以便异常返回后恢复异常发生时的工作状态。

    (1)条件码标志

    N、Z、C、V,最高4位称为条件码标志。ARM的大多数指令可以条件执行的,即通过检测这些条件码标志来决定程序指令如何执行。

    各个条件码的含义如下:

    N:在结果是有符号的二进制补码情况下,如果结果为负数,则N=1;如果结果为非负数,则N=0。

    Z:如果结果为0,则Z=1;如果结果为非零,则Z=0。

    C:其设置分一下几种情况:

               对于加法指令(包含比较指令CMN),如果产生进位,则C=1;否则C=0。
    
               对于减法指令(包括比较指令CMP),如果产生借位,则C=0;否则C=1。
    
               对于有移位操作的非法指令,C为移位操作中最后移出位的值。
    
               对于其他指令,C通常不变。
    

    V:对于加减法指令,在操作数和结果是有符号的整数时,如果发生溢出,则V=1;如果无溢出发生,则V=0;对于其他指令,V通常不发生变化。

    (2)控制位的作用在图1中可以看出,在这里就不阐述了。

    二:CPSR与CPSR_c的区别

      CPSR_c指的是CPSR的低8位控制位
    
      CPSR有4个8位区域:标志域(F)、状态域(S)、扩展域(X)、控制域(C)
    
      MSR - Load specified fields of the CPSR or SPSR with an immediate constant, or from the contents of a general-purpose register.
    
     Syntax:
    
     MSR{cond} <psr>_<fields>, #immed_8r MSR{cond} <psr>_<fields>, Rm where: cond is an optional condition code. <psr> is either CPSR or SPSR. <fields> specifies the field or fields to be moved. <fields> can be one or more of:
    

    c control field mask byte (PSR[7:0]) x extension field mask byte (PSR[15:8]) s status field mask byte (PSR[23:16) f flags field mask byte (PSR[31:24]). immed_8r is an expression evaluating to a numeric constant. The constant must correspond to an 8-bit pattern rotated by an even number of bits within a 32-bit word. Rm is the source register.

      C 控制域屏蔽字节(psr[7:0])
      X 扩展域屏蔽字节(psr[15:8])
      S 状态域屏蔽字节(psr[23:16])
      F 标志域屏蔽字节(psr[31:24])
    

    常用于MRS或MSR指令,用于psr中的值转移到寄存器或把寄存器的内容加载到psr中.
    如:

    MSR CPSR_c,#0xd3

    三、R0-R15寄存器 根据“ARM-thumb 过程调用标准”:
    R0-R3 用作传入函数参数,传出函数返回值。在子程序调用之间,可以将 r0-r3 用于任何用途。
    被调用函数在返回之前不必恢复 r0-r3。如果调用函数需要再次使用 r0-r3 的内容,则它必须保留这些内容。
    R4-R11 被用来存放函数的局部变量。如果被调用函数使用了这些寄存器,它在返回之前必须恢复这些寄存器的值。
    R12 是内部调用暂时寄存器 ip。它在过程链接胶合代码(例如,交互操作胶合代码)中用于此角色。
    在过程调用之间,可以将它用于任何用途。被调用函数在返回之前不必恢复 r12。
    R13 是栈指针 sp。它不能用于任何其它用途。sp 中存放的值在退出被调用函数时必须与进入时的值相同。
    R14 是链接寄存器 lr。如果您保存了返回地址,则可以在调用之间将 r14 用于其它用途,程序返回时要恢复
    R15 是程序计数器 PC。它不能用于任何其它用途。
    注意:在中断程序中,所有的寄存器都必须保护,编译器会自动保护R4~R11

    展开全文
  • 寄存器功能

    2011-11-17 15:17:50
    时钟周期是一个时间量,...寄存器AX和AL通常称为累加器(Accumulator),可用于乘、除、输入/输出等操作,它们使用频率很高;   寄存器BX称为基地址寄存器(Base Register),可作为存储器指针来使用;  寄
  • arm寄存器功能

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

    千次阅读 2019-05-02 12:04:33
    eax, ebx, ecx, edx, esi, edi, ebp, esp等都是X86 汇编语言中CPU上的通用寄存器的名称,是32位的寄存器。如果用C语言来解释,可以把这些寄存器当作变量看待。 比方说:add eax,-2 ; //可以认为是给变量eax加上-2...
  • 在这片SFR空间中,包含有128个位地址空间,地址也是80H-FFH,但只有83个有效位地址,可对11个特殊功能寄存器的某些位做寻址操作(这里介绍一个技巧:其地址能被8整除的都可以位寻址)。在51单片机内部有一个CPU用来...
  • x86架构CPU的指指令集是复杂指令集(CISC),提供了丰富的指令来实现强大的功能,与此同时也提供了大量寄存器来辅助功能实现。 x86架构的CPU,主要的寄存器包括以下: 通用寄存器 标志寄存器 指令寄存器 段...
  • 在汇编中,个人感觉最重要的部分其实就是寄存器了,这次我们了解一下寄存器的分类和功能。 先说一下寄存器是什么吧,其实就是一部分的空间,我们可以使用这些空间来存储内容。 寄存器的空间都是16位的(80x86中,...
  • 8051特殊功能寄存器

    2018-04-27 22:36:00
    我们对51单片机的操作实质是对特殊功能寄存器的操作。SFR是我们操作的对象,对他们进行读和写就是在操作51单片机。 PSW(程序状态字寄存器):保存程序在执行过程中一些状态。 CY:进位位CY是在执行加...
  • 虽然UVM寄存器抽象层支持功能覆盖率收集,但是,对于复杂的寄存器访问场景,现有元素显得并不充分。利用串行外设接口(SPI)访问寄存器带来了一种全新挑战,这是由于比特分辨率访问级别和低级别通信参数已成为...
  • 寄存器和ioremap使用

    2020-12-21 17:14:33
    寄存器的功能是存储二进制代码,它是由具有存储功能的触发器组合起来构成的。一个触发器可以存储1位二进制代码,故存放n位二进制代码的寄存器,需用n个触发器来构成。 按照功能的不同,可将寄存器分为基本寄存器和...
  • 8051 单片机内部有 21 个特殊功能寄存器,在物理上是分散在片内各功能部件中,在数学上把它们组织在内部数据存储器地址空间 80H~FFH 中,以便能使用统一直接寻址方式来访问。
  • 21个特殊功能寄存器(52系列是26个)不连续地分布在128个字节的SFR存储空间中,地址空间为80H-FFH,在这片SFR空间中,包含有128个位地址空间,地址也是80H-FFH,但只有83个有效位地址,可对11个特殊功能寄存器的某些...
  • 寄存器

    2021-01-07 19:19:15
    不同类型的CPU内部的寄存器的种类,数量以及寄存器存储的数值范围都是不同的。根据功能的不同,可以讲寄存器分为以下几类。 种类 功能 累加寄存器 存储运行的数据和运算后的数据。 标志寄存器 用于反应...
  • STM32定时器是 ST MCU 内部最基础且常用外设,实际应用尤为普遍。去年,电堂推出了《STM32 TIMER基础及常规应用介绍》,为大家梳理了 STM32 TIMER...本文重点分享与影子寄存器预装功能有关几个案例。STM32定时器...
  • 21个特殊功能寄存器(52系列是26个)不连续地分布在128个字节的SFR存储空间中,地址空间为80H-FFH,在这片SFR空间中,包含有128个位地址空间,地址也是80H-FFH,但只有83个有效位地址,可对11个特殊功能寄存器的某些位...
  • 固件库 固件(Firmware)就是写入EPROM(可擦写可...寄存器的功能是存储二进制代码,它是由具有存储功能的触发器组合起来构成的。一个触发器可以存储1位二进制代码,故存放n位二进制代码的寄存器,需用n个触发器来构成。
  • 特殊功能寄存器

    千次阅读 2013-07-23 10:11:36
    其实,特殊功能寄存器的划分界限是模糊的,因为其位于片内RAM存储器寻址区,我们在这里进行介绍,在后面的存储器讲解中也会提到特殊功能寄存器。 标准的8051内部有21个特殊寄存器,某些新的单片机则提供了更多的特殊...
  • 关于多功能寄存器的说明

    千次阅读 2013-11-24 15:16:34
    在KVM源码中,IO的虚化化涉及到对一系列的多功能寄存器的使用,主要是有以下的一些。转载一个总结的比较不错的作为保存。 RAX(累加器)RAX可作为64位寄存器(RAX)、32位寄存器(EAX)、16位寄存器(AX)或两个8...
  • 寄存器的认识

    2019-07-23 08:53:55
    1.寄存器按照功能的不同可分为通用寄存器(ax,bx,cx,dx,sp,bp,si,di。其中前四个寄存器可分别分成ah,al ;bh,bl;ch,cl;dh,dl八位寄存器)、指令指针寄存器(ip)、标志寄存器(flags)、段寄存器...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,873
精华内容 3,149
关键字:

寄存器的功能是