文档章节

ARM中R0-R15寄存器的作用

h
 houj
发布于 2014/09/30 16:40
字数 366
阅读 78
收藏 0

ARM中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

© 著作权归作者所有

上一篇: 蓝牙HCI
下一篇: ARM指令跳转范围
h
粉丝 9
博文 81
码字总数 57985
作品 0
长沙
技术主管
私信 提问
ARM寄存器介绍

ARM处理器共有37个寄存器。其中包括: 31个通用寄存器,包括程序计数器(PC)在内。这些寄存器都是32位寄存器。 6个状态寄存器,这些寄存器都是32位寄存器,但是目前只是用其中的12位。 ARM处理...

幸福阶梯
2018/02/14
59
0
小型虚拟机--xs-vm

xs-vm 是一个极小型的虚拟机,适用于教学。 这个项目的目的是执行一个简单的虚拟机,能够像 ARM 一样执行简单的汇编代码。我将一直让它保持简单(所以可能没有操作模式,中断处理,等等),因...

sikkx
2015/07/21
977
0
linux内核中打印栈回溯信息 - dump_stack()函数分析

linux内核中打印栈回溯信息 - dump_stack()函数分析 转载至: http://blog.csdn.net/jasonchengbd/article/details/45585133 简介 当内核出现比较严重的错误时,例如发生Oops错误或者内核认为...

xj178926426
2018/02/02
0
0
05-ARM体系结构与常用汇编指令

一、ARM体系结构  ARM(Advanced RISC Machines) ,既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。ARM 处理器是一种低功耗高性能的 32 位R...

梦想成大牛
2018/01/05
0
0
一起学mini2440裸机开发(九)--ARM中断控制系统

ARM处理器程序的执行流程种类 ●正常执行:每执行一条ARM指令,程序计数器PC的值自动加4。这一过程描述了应用程序顺序执行的状态。 ●跳转执行:通过B、BL跳转执行,实现程序在一定范围内的跳...

长平狐
2013/06/17
468
0

没有更多内容

加载失败,请刷新页面

加载更多

3_数组

3_数组

行者终成事
22分钟前
3
0
经典系统设计面试题解析:如何设计TinyURL(二)

原文链接:https://www.educative.io/courses/grokking-the-system-design-interview/m2ygV4E81AR 编者注:本文以一道经典的系统设计面试题:《如何设计TinyURL》的参考答案和解析为例,帮助...

APEMESH
今天
7
0
使用logstash同步MySQL数据到ES

概述   在生成业务常有将MySQL数据同步到ES的需求,如果需要很高的定制化,往往需要开发同步程序用于处理数据。但没有特殊业务需求,官方提供的logstash就很有优势了。   在使用logstas...

zxiaofan666
今天
10
0
X-MSG-IM-分布式信令跟踪能力

经过一周多的鏖战, X-MSG-IM的分布式信令跟踪能力已基本具备, 特点是: 实时. 只有要RX/TX就会实时产生信令跟踪事件, 先入kafka, 再入influxdb待查. 同时提供实时sub/pub接口. 完备. 可以完整...

dev5
今天
7
0
OpenJDK之CyclicBarrier

OpenJDK8,本人看的是openJDK。以前就看过,只是经常忘记,所以记录下 图1 CyclicBarrier是Doug Lea在JDK1.5中引入的,作用就不详细描述了,主要有如下俩个方法使用: await()方法,如果当前线...

克虏伯
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部