热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

寄存器_ARM寄存器

ARMv8-A把64位架构支持引入到ARM结构中,包括:A、31个64位通用寄存器:X0~X30;其中,X30也作为过程连接寄存器PLR(ProduceL

ARMv8-A把64位架构支持引入到ARM结构中,包括:
A、31个64位通用寄存器:X0~X30;其中,X30也作为过程连接寄存器PLR(Produce Link Register)使用;
B、栈指针寄存器SP(Stack Pointer);
C、程序计数器PC(Program Counter);
D、64位数据处理和扩展的虚拟寻址;
E、两种主要的执行状态:
   AArch64: 64位执行状态,包括该状态异常模型、内存模型、程序员模型和指令集支持;
   AArch32: 32位执行状态,包括该状态异常模型、内存模型、程序员模型和指令集支持;
F、ARMv8-A的两种执行状态(AArch64AArch32)主要支持三种指令集:
   A32: 32位定长ARM指令集,需要4字节边界对齐;通过不同架构变体增强部分,32位架构执行环境现称为AArch32;
   T32: 16位定长Thumb指令集,需要2字节边界对齐,在Thumb2技术中增强为16位和32位混合长度指令集;部分32位架构执行环境现称为AArch32;
   A64: 32位定长指令集,提供与ARM和Thumb指令集的功能类似,是一种支持AArch64执行状态的全新32位固定长度指令集;随着ARMv8-A一起引入,是一种AArch64指令集;
   ARM-ISA不断改进,在ARMv8-A中,对A32和T32进行了一些增补,以保持与A64指令集一致;

AArch64特征:
1、提供31个64位通用寄存器:X0~X30;其中,X30也可用作过程连接寄存器PLR(Produce Link Register);
2、提供64位的程序计数器PC(Program Counter)、栈指针寄存器SP(Stack Pointer)和异常链接寄存器ELR(Exception Link Register);
3、提供32个128位的SIMD Vector和标量浮点寄存器SFP(Scalar Floating Point):V0~V31,也可用作64位寄存器;所有向量寄存器都是128位;双精度标量浮点使用Vx[63:0],单精度标量浮点使用Vx[31:0];
4、定义了4个执行级别寄存器(Executing Level):EL0、EL1、EL2、EL3;
5、支持64位的虚拟寻址(Virtual Addressing);
6、定义一组PSTATE,用以保存PE(Processing Element)状态;

AArch32特征:
1、提供31个32位通用寄存器:X0~X30;其中R3用作栈指针SP,R14用作链接寄存器LR,R15用作程序计数器PC,且R14需同时供异常链接寄存器ELR与过程连接寄存器PLR之用;
2、提供1个异常链接寄存器ELR,用以作为从HpyerVisior-Mode的异常返回之用;
3、提供32个64位的高级SIMD Vector和标量浮点寄存器(Scalar Floating Point);
4、提供A32与T32两种指令集;
5、支持32位虚拟寻址(Virtual Addressing);
6、只使用CPSR保存PE(Processing Element)状态;
7、提供1个32位异常特征寄存器ESR(Exception Syndrome Register),这个寄存器有自己特有的编码格式,且按照不同的执行级别EL(Executing Level)划分,每个执行级别都有一个ESR,名字分别记作:ESR_EL0、ESR_EL1、ESR_EL2、ESR_EL3;

A64通用寄存器:
X0~X7  : 参数/结果寄存器;
X8     : 直接结果位置寄存器;
X9~X15 : 临时寄存器;
X16    : 第1个内部过程调用寄存器或临时寄存器IP0;
X17    : 第2个内部过程调用寄存器或临时寄存器IP1;
X18    : 平台寄存器/临时寄存器;
X19~X28: 程序计数器/调用备份寄存器;
X29    : 用作帧指针寄存器FP;
X30    : 用作过程链接寄存器PLR(Produce Link Register)
SP     : 栈指针寄存器;

A32通用寄存器:
R0~R3 : 参数/结果寄存器;
R4~R11: 临时寄存器;
R12   : 内部过程调用寄存器或临时寄存器IP;
R13   : 栈指针寄存器SP;
R14   : 链接寄存器LR;
R15   : 程序计数器PC;

ARMv8支持的数据类型:
字节/B: 8位,Byte;
半字/H: 16位,HalfWord;
单字/S: 32位,SingleWord;
双字/D: 64位,DoubleWord;
四字/V: 128位,QuadWord;

使用这几种数据类型时,ARMv8的通用寄存器可区分为32位和64位两种,可供程序使用:
64位寄存器用作32位寄存器时记作:Wn; (W:Word)
64位寄存器用作64位寄存器时记作:Xn;

128位的浮点向量寄存器可分为5种:
用作8位寄存器时记作  :Bn; (Byte,字节)
用作16位寄存器时记作 :Hn; (Half Word,半字)
用作32位寄存器时记作 :Sn; (Single Word,单字)
用作64位寄存器时记作 :Dn; (Double Word,双字)
用作128位寄存器时记作:Qn; (Quad Word,四字)
n=0 ... 30;


推荐阅读
  • 本文概述了JNI的原理以及常用方法。JNI提供了一种Java字节码调用C/C++的解决方案,但引用类型不能直接在Native层使用,需要进行类型转化。多维数组(包括二维数组)都是引用类型,需要使用jobjectArray类型来存取其值。此外,由于Java支持函数重载,根据函数名无法找到对应的JNI函数,因此介绍了JNI函数签名信息的解决方案。 ... [详细]
  • x86 linux的进程调度,x86体系结构下Linux2.6.26的进程调度和切换
    进程调度相关数据结构task_structtask_struct是进程在内核中对应的数据结构,它标识了进程的状态等各项信息。其中有一项thread_struct结构的 ... [详细]
  • v8对象机制1.概述v8中每一个API对象都对应一个内部实现对象(堆对象)2.对象创建过程(1)v8::internal::Factory类: ... [详细]
  • rust编程这篇文章是关于我通过解决Twitch上尚未解决的所有CtCI问题来学习Rust的经验。英国科学博物馆集团AdaLovelace的肖像Rust徽标,由Moz ... [详细]
  • 透明木头问世!“木头大王”胡良兵再发顶刊,已成立公司加速落地69
    道翰天琼认知智能机器人平台API接口大脑为您揭秘。木材是人类最古老的建筑材料之一,也是一种绿色节能材料,我们对其外观的认知可谓根深蒂固。如今,随着透明木材的问世,这一观感将被颠覆。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • 闭包一直是Java社区中争论不断的话题,很多语言都支持闭包这个语言特性,闭包定义了一个依赖于外部环境的自由变量的函数,这个函数能够访问外部环境的变量。本文以JavaScript的一个闭包为例,介绍了闭包的定义和特性。 ... [详细]
  • 本文介绍了机器学习手册中关于日期和时区操作的重要性以及其在实际应用中的作用。文章以一个故事为背景,描述了学童们面对老先生的教导时的反应,以及上官如在这个过程中的表现。同时,文章也提到了顾慎为对上官如的恨意以及他们之间的矛盾源于早年的结局。最后,文章强调了日期和时区操作在机器学习中的重要性,并指出了其在实际应用中的作用和意义。 ... [详细]
  • 配置IPv4静态路由实现企业网内不同网段用户互访
    本文介绍了通过配置IPv4静态路由实现企业网内不同网段用户互访的方法。首先需要配置接口的链路层协议参数和IP地址,使相邻节点网络层可达。然后按照静态路由组网图的操作步骤,配置静态路由。这样任意两台主机之间都能够互通。 ... [详细]
  • 海马s5近光灯能否直接更换为H7?
    本文主要介绍了海马s5车型的近光灯是否可以直接更换为H7灯泡,并提供了完整的教程下载地址。此外,还详细讲解了DSP功能函数中的数据拷贝、数据填充和浮点数转换为定点数的相关内容。 ... [详细]
  • 本文介绍了在Mac上安装Xamarin并使用Windows上的VS开发iOS app的方法,包括所需的安装环境和软件,以及使用Xamarin.iOS进行开发的步骤。通过这种方法,即使没有Mac或者安装苹果系统,程序员们也能轻松开发iOS app。 ... [详细]
  • 本文讨论了在VMWARE5.1的虚拟服务器Windows Server 2008R2上安装oracle 10g客户端时出现的问题,并提供了解决方法。错误日志显示了异常访问违例,通过分析日志中的问题帧,找到了解决问题的线索。文章详细介绍了解决方法,帮助读者顺利安装oracle 10g客户端。 ... [详细]
  • 技术周报·2021-05-07-小编推荐向现代Javascript转型原文标题:Publish,ship,andinstallmodernJavaScriptforfaste ... [详细]
  • 基于STM32的智能循迹小车设计(基础版)
    基于STM32的智能循迹小车设计(基础版)硬件准备1、小车底盘+四直流电机(带轮)2、STM32F103C8T6核心板3、12V8700mAh锂电池(可以用几节18650锂电池)4 ... [详细]
author-avatar
品花人生1
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有