ARM aarch64汇编学习笔记(三):寄存器概述

发布者:vettykatty最新更新时间:2021-11-30 来源: eefocus关键字:ARM  aarch64  汇编学习  寄存器 手机看文章 扫描二维码
随时随地手机看文章

ArmV8 寄存器简单概念:

ARMv8拥有两种执行模式:
AArch64执行A64指令,使用64bit的通用寄存器
AArch32执行A32/T32指令,使用32bit的通用寄存器;

本篇主要描述aarch64执行模式的一些概念

OverView

image.png

PSTATE不是一个寄存器,是保存当前PE状态的一组寄存器统称,其中可访问寄存器有:PSTATE.{NZCV,DAIF,CurrentEL,SPSel},属于ARMv8新增内容,64bit下代替CPSR


注:

没有名为X31或W31的寄存器。 一些指令被编码了,以使数字31代表零寄存器ZR(WZR / XZR)。 还有一组受限制的指令,其中一个或多个参数被编码,以使数字31代表堆栈指针(SP).


Exception levels:

ARMv8定义了四种异常类型, EL0-EL3, 级别依次从低到高。

这里写图片描述

EL0为普通用户程序

EL1是操作系统内核相关

EL2是Hypervisor, 可以理解为上面跑多个虚拟OS

EL3是Secure Monitor(ARM Trusted Firmware)


link registers:

链接寄存器(LR)在进行子程序调用时存储返回地址。如果返回地址存储在堆栈中,它也可以用作通用寄存器, LR会映射到寄存器X30.

有三个异常链接寄存器,ELR_EL1,ELR_EL2和ELR_EL3,对应3个异常级别。当发生异常时,目标异常级别的异常链接寄存器存储在异常处理完成后跳转到的返回地址。如果异常取自AArch32状态,则ELR中的前32位都设置为零。异常级别内的子程序调用使用LR存储子程序的返回地址。

例如,当异常级别从EL0更改为EL1时,返回地址存储在ELR_EL1中。

在异常级别中,如果启用使用相同异常级别的中断,则必须确保将ELR存储在堆栈中,因为在执行中断时将使用新的返回地址覆盖它。


stack pointer registers:

堆栈指针(SP)是一个指向堆栈顶部的寄存器。 选择使用的堆栈指针在某种程度上与“异常”级别是分开的。 默认情况下,发生异常时会为目标异常级别选择堆栈指针(SP_ELn)。 例如,发生EL1异常时选择SP_EL1。 每个异常级别都有自己的堆栈指针。


但是,当在AArch64中,异常级别的不是E0时,处理器可以使用下面中的任何一种:

与该异常级别(SP_ELn)关联的64位堆栈指针,或者,

与EL0(SP_EL0)关联的堆栈指针。 EL0只能访问SP_EL0。

SP不能被大多数指令引用。 但是,一些算术指令,例如ADD指令,可以读写当前的堆栈指针来调整函数中的堆栈指针。 例如:


ADD SP, SP, #0x10          // 将SP调整为当前值之前的0x10字节

ADD SP, SP, #256           // SP = SP + 256


saved program status registers:

当异常发生时,PSTATE在SPSR里面保存。

这里写图片描述

N:负于或小于

Z:零

C:进位或借位或扩展

V:溢出

关键字:ARM  aarch64  汇编学习  寄存器 引用地址:ARM aarch64汇编学习笔记(三):寄存器概述

上一篇:[register]-04-ARMv8的寄存器简介和总结
下一篇:ARM aarch64汇编学习笔记(一):搭建编译环境

推荐阅读最新更新时间:2024-11-05 13:51

基于ARM11和DSP的3G视频安全帽设计
1.引言 为提高在高危工作场所现场作业的可控性,本文采用仿生学原理和高集成度设计实现了与人眼同视角的3G视频安全帽。本设计由视频安全帽和腰跨式数据处理终端两部分组成,采用高可靠性航空插头连接。其中图像处理采用三星公司的S3C6410 ARM11处理器和TMS320DM642 DSP处理器组成。本设计结合DSP处理器在视频压缩方面的优势和运行于ARM之上的Linux操作系统在数据管理与任务调度机制方面的出色表现,由DSP完成图像处理功能,并通过高速接口把视频数据传输给嵌入式微处理系统,完成视频数据的传输、存储功能。 2.系统构成 本设计由视频安全帽和腰跨式视频终端两部分组成。视频安全帽中包含1路视频输入、1路音频输入和1
[单片机]
基于<font color='red'>ARM</font>11和DSP的3G视频安全帽设计
13. 从0学ARM-Cortex-A9 RTC裸机程序编写
一、RTC RTC(Real-Time Clock) 实时时钟。 RTC是集成电路,通常称为时钟芯片。在一个嵌入式系统中,通常采用RTC来提供可靠的系统时间,包括时分秒和年月日等,而且要求在系统处于关机状态下它也能正常工作(通常采用后备电池供电)。它的外围也不需要太多的辅助电路,典型的就是只需要一个高精度的32.768kHz 晶体和电阻电容等,并且具有闹钟的功能。。 二、Exynos 4412 RTC 本篇主要以Cortex-A9 soc为例讲解RTC的使用方法。 1. 特性 实时时钟(RTC)单元可以通过备用电池供电,因此,即使系统电源关闭,它也可以继续工作。RTC可以通过STRB/LDRB 指令将8位BCD码数据送至CPU。
[单片机]
13. 从0学<font color='red'>ARM</font>-Cortex-A9 RTC裸机程序编写
ARM11嵌入式系统实时网络通信和LCD显示的实现
0 引言 ARM11主频为533 MHz,最高可达667 MHz,较ARM7主频提高了10倍,且拥有更丰富的片上资源,处理速度更快,功能更强。基于上述特点,ARM11可完全适应实时性较强的网络终端的设计。 在以ARM11为核心的网络终端设计中,需要LCD在终端实时显示网络通信的各项参数和设备工作状态,LCD的显示内容依靠网络传输数据中的指令来控制,而网络终端的操作数据也要通过网络传输到计算机,因此网络通信和LCD显示需要很强的实时性才能合理使用计算机和ARM11的资源,从而提高系统的运行效率。 该文以ARM11处理器S3C6410为平台,基于Linux操作系统设计了一种在ARM11内核直接控制LCD显示的方法,并采用TC
[单片机]
<font color='red'>ARM</font>11嵌入式系统实时网络通信和LCD显示的实现
LPC2000系列的CAN总线验收滤波器应用
CAN(Controller Area NetWork)总线,即控制器局域网总线,是由德国Bosch公司于1982年开发和推出的最早用于汽车内部测量与执行部件之间的数据通信协议。在20多年的历史中,CAN总线在许多领域得到了应用,是到目前为止唯一有国际标准的现场总线。 CAN现场总线按照国际标准化组织ISO提出的"开放系统互联(OSI)"参考模式,实现其中的物理层、数据链路层和应用层。CAN控制器用来实现CAN总线协议。CAN控制器芯片分为两类:一类是独立的控制器芯片,如SJA1000;另一类是和微控制器做在一起,如Philips公司的LPC2000系列32位ARM微控制器。两类控制器都提供了报文标识过滤的验收滤波器。但独
[应用]
适用于工业和物联网边缘的更安全更高效的i.MX处理器
在嵌入式世界大会2021上,恩智浦(NXP)发布了先进的i.MX 9应用处理器,该处理器在工业和物联网边缘的安全性,能效和可扩展性方面具有改进的性能。对其产品组合的更新通过集成EdgeLock安全区域来增强边缘处理器的安全性,EdgeLock安全区域是一个独立的,自我管理的芯片上的安全子系统,可简化尖端安全技术的部署。 在与EEWeb的采访中,恩智浦边缘处理业务和技术战略负责人Gowri Chindalore,恩智浦产品管理总监Amanda McGregor和边缘处理高级架构师Mohit Arora强调了EdgeVerse产品组合的扩展及其跨界应用,并通过Energy Flex架构最大化效率。 Chindalore表示:“
[嵌入式]
适用于工业和物联网边缘的更安全更高效的i.MX处理器
意法半导体与ARM携手培育中国电子产业青年人才
意法半导体(STMicroelectronics,简称ST;纽约证券交易所代码:STM)与半导体知识产权(IP)提供商ARM(伦敦证交所代码:ARM;纳斯达克股票交易所代码:ARMH.US)今日共同宣布,在中国成立创新实验室,用来推广ARM mbed 以及 STM32技术,进而培育并扩大中国电子产业本地人才,迎接快速成长的物联网全球机遇。 在本次的合作中,双方将在全国高等院校计算机基础教育研究会高职高专专业委员会的支持之上,通过意法半导体STM32 开发板、基于ARM mbed嵌入式设计的教学课件、以及ARM Keil MDK开发工具,为嵌入式系统设计课程提供参考教材。目前已有18所高级职业学校加入,预计在未来5年内
[单片机]
嵌入式微处理器ARM7202触摸屏接口设计
1 引言 嵌入式系统中触摸屏越来越广泛地应用。不同的应用领域触摸屏的设计方式也各不相同,一般有以下三种:(1)应用触摸屏模块。触摸屏模块提供标准的硬件接口与应用系统(一般为PC或X86架构的工控机)相连,安装驱动程序后即可工作,基本无需开发;(2)扩展触摸屏控制器。这是嵌入式系统中设计触摸屏普遍使用的方法,常用的触摸屏控制芯片有ADS7843、 ADS7846 等,这些芯片内部集成了A/D转换器和触摸屏的驱动电路,同时要设计一定的软件;(3)与前面方式(2)相仿,有些处理器集成了A/D转换器,通过IO口模拟触摸屏的驱动信号也可实现触摸屏的控制。 随着芯片技术的发展,处理器内部集成的资源越来越丰富,有些芯片内部已经集成了触
[工业控制]
嵌入式微处理器<font color='red'>ARM</font>7202触摸屏接口设计
ARM体系下的GCC内联汇编
在操作系统级的编程中,有时候,C语言并不能完全的使用硬件的功能,这时候就需要嵌入一些汇编代码来实现功能。 有两种方式可以使C语言和assemly语言一起工作,一种是两种语言分开写成两个文件,链接的时候链接成一个文件;另一种就是在C语言中嵌入汇编代码。下面简单介绍一下如何在GCC中嵌入汇编代码。 GCC规定了一个内联汇编的语法,不同硬件平台上的GCC内联汇编几乎都是这样的: asm( 汇编指令列表 :输出运算符列表 :输入运算符列表 :被更改的资源列表 }; 在GCC中插入汇编代码,需要以asm关键字开头,中间四个部分用”:”分隔,如果你嵌入的汇编没有输入输出,或者更改资源,后面三项是可以省略的。 下面以
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved