精华内容
下载资源
问答
  • 在AArch32架构,通用寄存器w0~w30是32bit宽度; 在AArch64架构,通用寄存器x0~x30是64bit宽度; 2 特殊寄存器 SP (stack pointer register) 指向当前栈的指针;AArch64架构为SP AArch32架构为WSP; PC (program...
    ARMv8寄存器说明

    1 通用寄存器

    1. ARMv8提供了31个通用寄存器 R0~R30;
    2. 在AArch32架构,通用寄存器w0~w30是32bit宽度;
    3. 在AArch64架构,通用寄存器x0~x30是64bit宽度;

    2 特殊寄存器

    1. SP (stack pointer register) 指向当前栈的指针;AArch64架构为SP AArch32架构为WSP;

    2. PC (program counter) 指向当前指令的地址;连接寄存器LR,保存子程序的返回地址; AArch32架构中LR使用R14、SP使用R13 AArch64架构中LR使用x30;

    3. PSTATE (process state) 对进程状态信息的集合,包括以下寄存器集合:条件寄存器NZCV、异常屏蔽寄存器DAIF、SP选择寄存器SPSEL、异常等级寄存器CurrentEL,所有指令集都可以通过PSTATE反馈状态;此外,当发生异常时,这些标志位信息将被保存到对应异常级别的SPSR寄存器中;

      可通过mrs指令可以读取寄存器的值、msr指令向寄存器写值;

    4. System registers,系统寄存器为执行控制、状态和一般系统配置提供支持,大多数系统寄存器在EL0是不可访问的,但可以在系统初始化时配置一些系统寄存器允许在EL0级别执行的程序访问,任何从EL0到禁用访问权限的系统寄存器的访问都会导致指令表现为UNDEFINED;

      EL0可以访问的寄存器有:

      • Cache ID registers The CTR_EL0 and DCZID_EL0 registers provide implementation parameters for EL0 cache management support.

      • Debug registers A debug communications channel is supported by the MDCCSR_EL0, DBGDTR_EL0, DBGDTRRX_EL0 and DBGDTRTX_EL0 registers.

      • Thread ID registers The TPIDR_EL0 and TPIDRRO_EL0 registers are two thread ID registers with different access rights.

      • Timer registers In ARMv8 the following operations are performed:

      • Read access to the system counter clock frequency using CNTFRQ_EL0.

      • Physical and virtual timer count registers, CNTPCT_EL0 and CNTVCT_EL0.

      • Physical up-count comparison, down-count value and timer control registers,

      CNTP_CVAL_EL0, CNTP_TVAL_EL0, and CNTP_CTL_EL0.

      • Virtual up-count comparison, down-count value and timer control registers,

      CNTV_CVAL_EL0, CNTV_TVAL_EL0, and CNTV_CTL_EL0.

    3 ARMv8架构

      • CPU的内部结构构成:控制单元、逻辑运算单元、存储单元(包括内部总线和缓冲器);
      • 控制单元完成数据处理整个过程中的调配工作,逻辑单元则完成各个指令以便得到程序最终想要的结果,存储单元就负责存储原始数据以及运算结果;
      • ALU:逻辑运算单元、x0~x30以及特殊寄存器集合:存储单元;
      • MMU:内存管理单元,包括地址转换模块以及TLB表模块;

    在这里插入图片描述

    特殊寄存器说明:

    • GIC interface的寄存器在ID registers寄存器中;
    • SPSR与SP寄存器在Special-purpose registers寄存器中,主要涉及ELR_EL1-2、SP_EL0-2、SPSR_EL1-2/SPSR_fiq/SPSR_irq/SPSR_und/SPSR_abt;(当有中断或异常发生时,SPSR_EL1存储处理器的状态信息即PSTATE、ELR_EL1存储当前指令的地址PC、ESR_EL1存储出错的异常信息;)
    • PSTATE在Base system registers寄存器中,其中PSTATE是一组状态寄存器的集合,涉及NZCV、DAIF、Currentel;主要涉及SCTLR_EL1-2、VBAR_EL1-2、NZCV、DAIF、CurrentEL
    展开全文
  • 通用寄存器

    2021-07-22 23:42:38
    8个通用寄存器是指寄存器中想存什么就存什么,还有一些寄存器是专用的,有专业用途。 一、通用寄存器 1.1寄存器 1.2不同位数寄存器含义 16位AX是EAX一半,且只有低一半,就像下图的0001一样。 AL是低8位,...

    寄存器位于CPU中,32位寄存器能够提供8位、16位、32位的寄存器。8个通用寄存器是指寄存器中想存什么就存什么,还有一些寄存器是专用的,有专业用途。

    一、通用寄存器

    1.1寄存器

      1.2不同位数寄存器含义

    16位AX是EAX一半,且只有低一半,就像下图的0001一样。 

     AL是低8位,AH是高8位。

    例如:MOV AL,3   MOV AH,2,结果就是:

     寄存器之间mov宽度要求一致。

     

    二、指令

    mov:将立即数或一个寄存器的值存到另一个寄存器中。

    例如 MOV EAX ,1   MOV EDX,EAX

    展开全文
  • CS和IP寄存器的作用及执行分析

    千次阅读 2021-04-21 21:23:13
    我们在刚开始学习汇编或者操作系统时,会被一些寄存器搞得晕头转向,可能是我比较笨吧,抽象能力比较差,对于CS和IP寄存器的概念是知道,但是不知道他们的作用。 CS和IP寄存器概念 书本上的解释如下: CS是代码段...

    前言

    我们在刚开始学习汇编或者操作系统时,会被一些寄存器搞得晕头转向,可能是我比较笨吧,抽象能力比较差,对于CS和IP寄存器的概念是知道,但是不知道他们的作用。

    CS和IP寄存器概念

    书本上的解释如下:

    • CS是代码段寄存器,IP为指令指针寄存器,他们一起合作指向了CPU当前要读取的指令地址,可以理解为CS和IP结合,组成了PC寄存器。
    • 任何时刻,8086CPU都会将CS:IP指向的指令作为下一条需要取出的执行指令。
    • 8086CPU中的计算公式为 (CS << 4)|IP, 即CS左移4位,然后再加上IP

    为什么要设计CS和IP寄存器

    上面提到了CS和IP寄存器概念,初学者可能会有疑问,为什么要这么折腾?为什么不直接设计一个寄存器取代CS和IP寄存器?这就涉及到CPU的发展历史了,这里我们先说一句特别的感悟:CPU的发展是连续迭代的过程,新的设计要兼容旧的设计。之前一直不明白这句话的含义,或者是忽略了这句话,我们知道CPU是一种神奇的发明,可以说,CPU是现代所有科技的大脑和帮手,每一代的CPU都会有数以千万级的硬件产品使用,除非是上帝,任何人也不能说一下子就能设计永远不过时的架构,所以CPU是一个逐步迭代的产品,迭代的原因就是旧的架构或资源过时了,需要新的架构或者优化,但是我们在设计新的CPU架构时,必须也不得不考虑兼容性,兼容上一代的产品,这虽然给设计人员增加了设计难度,但是也是不得已为之,好了,上面说了很多正确的废话,接下来简单的说下为什么需要CS和IP寄存器,我们先说一下历史,不严谨的说:

    • 在上古CPU中,类似于现在的小型单片机,是没有CS和IP寄存器的,因为内存少的可怜,比如16位的CPU,最大就能访问2^16 byte,即64Kb的内存,也就是地址线、数据线、寄存器都是16位,访问内容完全都是统一的,一点都不会乱,而且那会儿64Kb的内存空间已经足够用了。
    • 随着应用程序的发展,对内存的需求也更多了(2021年,4G内存都沦落到乞丐配置了),所以相比上一代的64Kb,8086处理器的设计目标是1M的大内存空间,相当于提升到上一代的16倍,1M的空间对应的地址总线就是20位。

    如上所属,愿望是很好的,一个很现实的问题就摆在Intel设计人员面前,地址线宽度是20位,但是CPU中的算数逻辑运算单元(ALU) 仍然是16位,而且很尴尬的是,当时的制造技术很难把ALU加工到20位,即便是有能力加工到20位,也无法兼容上一代的CPU了,当然也有其他的方案,比如增设一些20位的指令和寄存器,专门用于地址的运算和操作,但是那样又造成CPU内存结构的不均匀,基于上面的原因,Intel的工程师设计了一种在当时看来很巧妙的方法,即分段方法。也就是前面提到的CS:IP结合的算法,CS和IP都是16位,CS左移4位,然后与IP相加,得到20位的地址。这样就实现了从16位内存地址到20位实际地址的转换,段式内存管理带来了显而易见的优势,程序地址不再需要编码了,调试错误也更容易定位了,也能支持更大的内存了。

    CPU通过CS和IP进行指令执行过程

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 流水线寄存器问题

    2021-12-05 20:17:35
    图中的DFG(Data Flow Graph)节点已经标出了传输延迟,求该电路中流水线寄存器的最佳放置位置?求问大神解答这个题

    图中的DFG(Data Flow Graph)节点已经标出了传输延迟,求该电路中流水线寄存器的最佳放置位置?求问大神解答这个题在这里插入图片描述

    展开全文
  • IA-32寄存器基本介绍

    2020-12-27 12:48:38
    什么是寄存器 寄存器就是CPU内部用来存放数据的一些小型存储区域 特点: 由于距离CPU近,它的读写速度非常快,常用来暂时存储数据 寄存器的种类 Basic program execution registers->基本程序运行寄存器 x87 FPU ...
  • 1引言 我们在学习STM32的时候,把被...我们可以根据每个单元功能的不同,以功能为名给这个内存单元取一个别名,这个别名就是我们经常说的寄存器。给已经分配好地址的特定功能的内存单元取别名的过程就叫寄存器映射。 然
  • (5)VHDL对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必管理最终设计实现的目标器件是什么,而进行独立的设计。 8位移位寄存器vhdl代码: LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY ...
  • JAVA寄存器

    2021-02-12 16:53:57
    所有进程都使用寄存器,Java虚拟机使用下列寄存器管理系统堆栈:程序记数寄存器:跟踪程序执行的准确位置堆栈指针寄存器:指示操作栈项框架寄存器:指向当前执行的环境变量寄存器:指向当前执行环境中第一个本地变量...
  • 前言 当CPU在访问内存单元的时候,需要给出内存单元的地址。所有内存单元构成了一个一维的线性地址空间,每个内存单元在整个空间都有一个唯一的地址,这个唯一的地址被称之为物理...寄存器的最大宽度为16位 寄存器和运
  • 第二章 寄存器 ​ CPU内部的组件(运算器、控制器、寄存器等)依靠内部总线连接.前一章所说的总线相对于CPU内部来说是外部总线. ​ 汇编程序员通过改变各种寄存器中的内容来实现对CPU的控制. ​ 不同的CPU,寄存器的...
  • STM32F767--->寄存器

    2021-06-24 09:06:34
    文章目录IO 配置常用的 8 个寄存器MODEROTYPEROSPEEDRPUPDRODRBSRRIDRAFRH & AFRL IO 配置常用的 8 个寄存器 MODER、OTYPER、OSPEEDR、PUPDR、ODR、IDR 、AFRH 和 AFRL。 MODER   MODER 寄存器,该寄存器是 ...
  • 寄存器执行指令过程

    2021-08-30 19:29:59
    8086的寄存器有16个比特位,他可以当作两个8比特位的寄存器使用。这两个寄存器分别叫AL,AH(我猜测是low和high的缩写)。mov al,78H就是将78存入低位字节中。当使用al、ah时,ax就被视为分离的寄存器,al、ah之间...
  • 汇编语言-寄存器

    2021-10-22 15:27:23
    寄存器是CPU中程序员可以用指令读写的部件,CPU的主要部件是寄存器,程序员通过改变各种寄存器的内容来实现对CPU的控制 CPU由运算器、控制器、寄存器等器件构成,器件通过总线连接,第一章描述的地址、控制、命令...
  • 文章目录CPU概述寄存器字在寄存器中的存储几条汇编指令物理地址16位结构的CPU8086CPU给出物理地址的方法”段地址*16+偏移地址=物理地址”的本质含义段的概念段寄存器CS和IP修改CS、IP的指令同时修改CS、IP仅修改IP的...
  • 寄存器模型 — UVM

    2021-06-19 11:11:08
    文章目录基本概念寄存器模型的集成访问寄存器的方式1. 前门访问2. 后门访问3.前门访问和后门访问的比较寄存器模型的常规方法1. mirror、desired 和 actual value2. prediction的分类3. uvm_reg 的访问方法4. uvm_mem...
  • 0x01 寄存器 通常存储数据可以放在三个地方 CPU 内存 硬盘 CPU可以分为32位和64位CPU,64位的CPU是从32位扩展上来的。...通用寄存器又分32、16、8位,分别对应着dword、word、byte的数据宽度
  • 寄存器模型的常规方法

    千次阅读 2021-03-06 19:19:26
    在应用寄存器模型的时候,除了利用它的寄存器信息,也会利用它来跟踪寄存器的值。寄存器模型中的每一个寄存器,都应该有两个值,一个是镜像值(mirrored value),一个时期望值(desired value)。期望值是先利用寄存器...
  • 汇编学习之路----------寄存器 通用寄存器----数据寄存器 AX BX CX DX 通用寄存器指的是存放数据的数据寄存器 这四个寄存器有一个其他寄存器所没有的,因为他们可以分割成两个8位的寄存器 AX=AH+AL BX=BH+BL CX=CH+...
  • ARM汇编:初识寄存器

    2021-03-19 20:45:13
    文章目录CPU内存寄存器(arm) 汇编语言与机器语言一一对应,每一条机器指令都有与之对应的汇编指令。 CPU 地址总线:它的宽度决定CPU寻址能力,最大为2的总线宽度次方。8086宽度20,所以最大寻址为2的20次方为1M。 ...
  • 寄存器由来 ES CS SS DS FS GS区别

    千次阅读 2021-08-07 16:46:20
    es是扩展段寄存器 cs是代码段寄存器 ss是堆栈段寄存器 ds是数据段寄存器 fs是标志段寄存器 gs是全局段寄存器
  • 使用C语言操作SCI寄存器与CMD文件的编写姓名: 金鸽专业:电子与通信工程学号:201422172172导师: 齐林寄存器的C语言访问DSP的寄存器能够实现对系统和外设功能的配置和控制,因此在DSP的开发过程中,对于寄存器的...
  • 一.程序的执行过程 二.CPU是怎么样从内存中去读取数据 1.内存结构 :地址+数据 cpu是计算机的核心部件,它控制这计算...地址总线的宽度=地址总线的条数 8086 20根地址总线,同时传输20位机器码 ,内存的存储单元8bit
  • 指令寄存器的位数与机器字长相同MDRin PCout 地址 总线 数据 总线 PCin Ad(IR)out MDRout MARin ALU Ri Y Z Yin Zin Riin Riout Zout ALUin ALU控制 + - PC MAR MDR +1 IRin IR 一、(20分)某计算机有零地址指令16条...
  • 剩下的寄存器,可以查阅数据手册进行更多的了解 1、TIMx_CR1(控制寄存器 1) 这个寄存器我们经常只使用这两位 第4位:选择计数方式 第0位:使能计数器 2、TIMx_DIER(DMA/中断使能寄存器) 这个寄存器只使用第0位 ...
  • 2011 年 9 月第 25 期科技视界 ... 基于matlab的移位寄存器法m序列的产生 刘艳华 (盐城工学院信息工程学院江苏盐城 224051) 【摘 要】扩频通信是在民用和军用都有广泛应用的一种通信技术,自从其诞生就受到了广泛关...
  • CPSR 和 SPSR 寄存器 CPSR 寄存器(和保存它的 SPSR 寄存器)中的位分配如下: 31 30 29 28 --- 7 6 - 4 3 2 1 0 N Z C V I F M4 M3 M2 M1 M0 0 0 0 0 0 User26 模式 0 0 0 0 1 FIQ26 模式 0 0 0 1 0 IRQ26 模式 0 0 0...
  • 它和X86/ARM相比,一大优势就是支持模块化,下面我们就来介绍一下RISC-V指令集的模块化结构,顺便再介绍下其寄存器结构。 一、模块化结构 RISC-V 指令集架构一改传统增量 ISA 模式,采用模块化 ISA 模式,它被定义为...
  • 64和32指的是CPU中的寄存器(通用)的字长,字长就是一个字的位数。这里说的字的含义是:处理器进行数据处理时,一次存取,加工,和传送的数据长度。 现在CPU大多是64位的,但大多都以32位字长运行,都没能展示它的...
  • 第2章 寄存器

    2021-08-01 16:03:02
    title: 第二章寄存器 date: 2021-07-23 14:48:03 tags: 汇编语言笔记 categories: 汇编语言笔记 在工作室好哥哥们的影响下,也开始喜欢用博客记录自己的学习过程了。 https://afanbird.github.io/ 个人博客的地址,...
  • RGMII接口调试使用VIO读取PHY寄存器

    千次阅读 2020-12-30 08:35:41
    相比与GMII,RGMII接口的信号线大幅减少至12根,移除了其中不必要的TXER、RXER、COL、CRS,并将数据线宽度由8位缩减至4位,但同样能够支持10Mbps、100Mbps和1000Mbps传输,其接口信号如下图4.2所示。 RGMII接口中的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 33,371
精华内容 13,348
关键字:

寄存器宽度是什么