汇编quad_ARM 汇编-程序员宅基地

技术标签: 汇编quad  

1. 寄存器

1.1 通用寄存器(X0-31)

参数寄存器(X0 - X7): 用于传递函数的前面8个参数,多余8个参数的,超出部分通过栈传递

返回值寄存器:(X0,X8): 用于保存返回值,如果是基本数据类型,返回值保存在X0,如果是结构体,结果的地址将保存在X8

调用者保存的临时寄存器(X9-X15):如果调用者用到这些寄存器,在调用另外一个函数前,调用者必需要将受影响的寄存器保存在自己的堆栈中.它们可以通过被调用的子程序进行修改而无需保存并在返回调用者之前恢复它们

被调用者保存的寄存器(X19-X29):这些寄存器保存在被调用者帧中。 它们可以被被调用者修改,只要它们在返回之前保存并恢复。

1.2 特殊用途寄存器(X8,X16-X18,X29,X30,X31):

XR(X8): 是间接结果寄存器,用于保存子程序返回地址,尽量不使用

X16 和 X17: 程序内调用临时寄存器

X18: 平台寄存器,保留用于平台 ABI,尽量不使用

FP(X29, Frame Pointer): 帧指针寄存器(FP),存储着当前栈底的地址

LR(X30, Link Register): 链接寄存器(LR)

SP(X31, Stack Pointer): 堆栈指针寄存器 ,存储的是栈顶的地址

PC:PC寄存器中存的是当前执行的指令的地址。在arm64中,软件是不能改写PC寄存器的

1.3 向量寄存器(浮点寄存器):V0 - V31

V0 - V31 是向量寄存器,也可以说是浮点型寄存器。它的特点是每个寄存器的大小是 128 位的。 分别可以用 Bn Hn Sn Dn Qn的方式来访问不同的位数:

Bn: 一个Byte的大小

Hn: half word. 就是16位

Sn: single word. 32位

Dn: double word. 64位

Qn: quad word. 128位

2. 栈

栈就是指令执行时存放临时变量的内存空间。在学习汇编代码的执行过程中,了解栈的结构非常重要。一下是栈的一些特性:

栈是从高地址到低地址扩展的, 栈底是高地址,栈顶是低地址。

FP指向当前frame的栈底,也就是高地址。

SP指向栈顶,也就是低地址。

9ee805a04ac7

其中3行

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_35854667/article/details/114020570

智能推荐

C++在实时系统中的应用和优化策略是什么?-程序员宅基地

文章浏览阅读883次,点赞17次,收藏17次。然而,需要注意的是,优化并非一蹴而就的过程,需要开发者根据具体的应用场景和需求进行持续的探索和实践。这些引擎能够实时处理复杂的图形数据,实现高质量的渲染效果,为游戏、虚拟现实(VR)和增强现实(AR)等应用提供强大的支持。因此,对于C++开发者来说,保持对新技术的关注和学习,不断提升自己的技能水平,是应对未来挑战的关键。(3)内存对齐:合理的内存对齐可以提高数据的访问速度,减少CPU的寻址时间。实时系统对内存的使用有着严格的要求,因此内存管理优化是C++在实时系统中应用的关键环节。

类似于邮件管理,具有全选,反选功能的代码-程序员宅基地

文章浏览阅读325次。<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><_3.2、类似如邮箱中对邮件的管理:选择邮件、删除邮件、全选、反选;如下图:小方框表

el-form 表单填写验证_e-from rules 不支持中文-程序员宅基地

文章浏览阅读493次。【代码】el-form 表单填写验证。_e-from rules 不支持中文

动捕捉 easymocap 笔记-程序员宅基地

文章浏览阅读163次。动作捕捉 easymocap 笔记

论文翻译(12)--A Bayesian Model for Crowd Escape Behavior Detection_pets2009数据集-程序员宅基地

文章浏览阅读827次。Association of Heart Rates with Stress Response Inventory Scores in Different Age Groups不同年龄组心率与应激反应量表评分的关系论文地址摘要——许多研究报道心率变化与精神压力有关。最近,设计了一个压力反应问卷(SRI)来对过去两周发生的与精神压力相关的身体、精神和情绪症状进行评分。然而,在手机等移动设备中,性权利倡议有太多的项目需要例行询问。此外,它的个人分数可能对估计不同年龄组的压力水平没有同等的贡献。因此,我们试_pets2009数据集

Leetcode高频题目整理(更新)_t[0,0]走到有下降t[n-1,1],只能向下或者向右走,不能后退-程序员宅基地

文章浏览阅读921次。深度优先遍历篇-69题(Depth-first Search, 69 problems)序号 题号 题目 题目描述 难度 1 679 24 点游戏 你有 4 张写有 1 到 9 数字的牌。你需要判断是否能通过*,/,+,-,(,)的运算得到 24。 困难 2 546 移除盒子 给出一些不同颜色的盒子,盒子的颜色由数字表示,即不同的数字表..._t[0,0]走到有下降t[n-1,1],只能向下或者向右走,不能后退

随便推点

数说CS|中国人民大学高瓴人工智能学院保研生源大起底!_中国人民大学计算机保研来源-程序员宅基地

文章浏览阅读3.1k次。1、院校介绍中国人民大学高瓴人工智能学院由高瓴资本创始人兼CEO、耶鲁大学校董、中国人民大学校友张磊先生捐资支持,是中国人民大学二级学院,于2019年成立。该学院主要招收人工智能专业的学生,对程序设计、数据结构与算法、计算机、人工智能专业综合能力以及英语听说读写能力有较高要求。人大高瓴不仅位于北京,而且还有着一流的师资力量,广受计算机保研er的欢迎,竞争较为激烈。2、培养特色※以上信息综合搜集整理自院系官网。如有信息偏误,欢迎留言评论指出学长学姐评价:评价一:人大高瓴人工智._中国人民大学计算机保研来源

计算机毕业设计springboot球队管理系统sspdy9[附源码]_分折球队系统-程序员宅基地

文章浏览阅读121次。选题背景和意义:在现代社会中,足球运动作为一项受欢迎的体育项目,吸引了大量的参与者和观众。随着足球运动的发展,越来越多的人加入到球队中,球队管理变得尤为重要。然而,传统的球队管理方式存在一些问题,如信息不透明、沟通不畅、数据管理困难等。为了解决这些问题,我们提出了设计一个基于Spring Boot框架的球队管理系统的毕业设计。首先,该球队管理系统可以提供球队成员的信息管理功能。通过该系统,管理员可以方便地记录和管理球队成员的个人信息、联系方式以及技术特长等。同时,球队成员也可以通过系统更新自己的信息_分折球队系统

Android IPC机制——Binder详解_andrdoid ipc 传递binder对象-程序员宅基地

文章浏览阅读1.6k次。IPC是指Android中的进程间通信,即在不同进程之间传递消息数据,Android中可实现进程通信的方法有很多,比如Intent、ContentProvider、Messenger、Binder或是利用文件,这些方式各有千秋,都有最适合使用的场景,这次要介绍的是Service跨进程访问的神器——Binder。我们都知道启动一个service时可以使用startService()和bindSe_andrdoid ipc 传递binder对象

UFC762AE101 3BHE006412R0101 ABB变频器ACS600接口模块-程序员宅基地

文章浏览阅读200次,点赞2次,收藏4次。接口模块是ACS600变频器的常用模块之一,具有多种功能,如可编程逻辑控制、系统控制、I/O控制等。UFC762AE101 3BHE006412R0101 ABB变频器ACS600接口模块。UFC921A101 3BHE024855R0101变频器接口模块,UFC760BE1041 3BHE004573R1041 变频接口模块等。UFC921A101 3BHE024855R0101变频器接口模块。UFC911B106 3BHE037864R0106变频器接口模块。ABB变频器ACS600的接口模块有。

Eclipse中集成Ant实现快速开发-程序员宅基地

文章浏览阅读400次。  如今Java程序员中很少有人使用命令行方式编程,而越来越多的人习惯使用某种IDE,且大部分选择Eclipse。本文将你展示如何在Eclipse中集成Ant-从在Eclipse中创建工程到编写Ant build.xml文件,再直接从Eclipse中运行这个文件。  Ant是Java开发界领先的构建工具,而Eclipse是主要针对Java程序员的集成开发环境(IDE)。Eclipse在可视化方

2、什么是Nosql/Nosql的特点_noql-程序员宅基地

文章浏览阅读2.2k次。什么是Nosql泛指非关系型数据库的,随着web2.0互联网的诞生!传统的关系型数据库很难对付web2.0时代!尤其是超大规模的高并发的社区!暴露出来很多难以客服的问题,Nosql在当今大数据环境下发展的十分迅速,Redis是发展最快的,而且是我们当下必须要掌握的一个技术!Nosql的特点1、方便扩展(数据之间没有关系,很好扩展)2、大数据量的高性能(Redis 一秒写8万次,读取11万,Nosql的缓存记录级,是一种细粒度的缓存,性能会比较高!3、数据类型是多样型的!(不需要事先设计数_noql