ARM架构中使用R12作为子程序间的scratch寄存器 (ATPCS中规定)。

可以将R12 用于保存SP,在函数返回时使用该寄存器出栈,记作ip。

或者又比如:

Uboot程序中主程序调用 cpu_init_crit函数,在这个cpu_init_crit函数中有下面的代码:

mov ip, lr
bl lowlevel_init
mov lr, ip
mov pc, lr

这个代码在调用lowlevel_init函数之前,先将lr存储在R12,之后在lowlevel_init函数调用返回之后使用mov lr,ip将之前保存的返回地址再一次存储到lr寄存器。

scratch寄存器作用说明相关推荐

  1. CPU各个寄存器作用

    程序员的代码最终的实现就是对寄存器和内存进行一些操作,知道CPU中各个寄存器的作用,能够对代码有更深刻的了解. 文章目录 CPU各个寄存器作用(8086): CS,IP bx,si,di,bp ss, ...

  2. CPU中寄存器作用及说明

    各种计算机的CPU可能不同,但是在CPU中至少至少要有六类寄存器:①指令寄存器(IR):②程序计数器(PC):③数据地址寄存器(AR):④缓冲寄存器(DR):⑤通用寄存器(R0~R3);⑥状态字寄存器 ...

  3. 【汇编】各个寄存器作用详解

    寄存器 英文名称:Register 寄存器定义 寄存器是中央处理器内的组成部份.寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令.数据和位址.在中央处理器的控制部件中,包含的寄存器有指令寄存器( ...

  4. 几种常见的寄存器作用

    EDX.EAX.ECX.EBX寄存器的作用 一般寄存器:AX.BX.CX.DX AX:累积暂存器,BX:基底暂存器,CX:计数暂存器,DX:资料暂存器 索引暂存器:SI.DI SI:来源索引暂存器,D ...

  5. 各种寄存器作用(汇总)

    32位CPU所含有的寄存器有: 4个数据寄存器(EAX.EBX.ECX和EDX) 2个变址和指针寄存器(ESI和EDI) 2个指针寄存器(ESP和EBP) 6个段寄存器(ES.CS.SS.DS.FS和 ...

  6. eax, ebx, ecx, edx, esi, edi, ebp, esp 各寄存器作用

    eax, ebx, ecx, edx, esi, edi, ebp, esp等都是X86 汇编语言中CPU上的通用寄存器的名称,是32位的寄存器.如果用C语言来解释,可以把这些寄存器当作变量看待. 比 ...

  7. R0~R16寄存器作用

    R0-R3     用作传入函数参数,传出函数返回值.在子程序调用之间,可以将 r0-r3 用于任何用途. 被调用函数在返回之前不必恢复 r0-r3.如果调用函数需要再次使用 r0-r3 的内容,则它 ...

  8. CPU各寄存器的作用

    CPU各寄存器的作用 - [Asm] 寄存器作用:ebp和esp是32位的SP,BP esp是堆栈指针 ebp是基址指针 ESP与SP的关系就象AX与AL,AH的关系.32位CPU所含有的寄存器有:4 ...

  9. ARM寄存器及功能介绍/R0-R15寄存器

    1.ARM 寄存器组介绍 ARM 处理器一般共有 37 个寄存器,其中包括: (1) 31 个通用寄存器,包括 PC(程序计数器)在内,都是 32 位的寄存器. (2) 6 个状态寄存器,都是 32 ...

最新文章

  1. 怎么从github上下载一个vue项目在本地运行
  2. 返回数组个数Java_用java实现返回一个整数数组中最大数组的和
  3. UIUC同学Jia-Bin Huang收集的计算机视觉代码合集
  4. 【机器学习基础】优化算法详解
  5. Java黑皮书课后题第3章:3.16(随机点)编写程序,显示矩形中一个随机点的坐标。矩形中心位于(0,0),宽100高200
  6. VS 2008 生成操作中各个选项的差别
  7. shell脚本常用语句用法笔记
  8. 第三十七期:如果你这样回答“什么是线程安全”,面试官都会对你刮目相看
  9. 事件选择WSAEventSelect
  10. 如何在同一地方组建多个 ZigBee 网络
  11. C#获取系统当前时间
  12. oracle clob 粘贴,使用Oracle SQL Developer将CLOB导出到文本文件
  13. 【Objecitve C代码】让对象沿着某条路径移动的动画效果
  14. 计算机组成原理完整学习笔记(六):指令系统
  15. Xshell5免费版安装使用说明
  16. 【转载】spring-batch入门实践
  17. VC++ 利用MFC的CWindowDC类实现画线功能 在桌面窗口中画线 绘制彩色线条 CPen nPenStyle nWidth crColor
  18. python怎么清理垃圾和缓存_怎么才能正确清理电脑的缓存垃圾?
  19. 2019年上半年 DDOS流量攻击分析以及解决方案
  20. 关于网站推广 网站营销 建议

热门文章

  1. win7安装使用mosquitto,vs2010中使用libmosquittopp
  2. 5人以下的ios开发团队如何赚钱生存?
  3. 浅谈 串行信号 转换成 并行信号 原理
  4. Visual Studio 2012制作MFC计算器-TC王者
  5. 第4章 Python 数字图像处理(DIP) - 频率域滤波8 - 二维DFT和IDFT的一些性质 - 二维离散卷积定理
  6. NAND闪存改变了现代生活
  7. “该文件没有与之关联的程序来执行该操作。请安装应用,若已经安装应用,请在“默认应用设置”页面中创建关联。
  8. Ubuntu 16.04 蓝牙4.0自动连接
  9. 硬屏软屏哪个寿命长?
  10. 深度学习网络学习记录 SRI-Net、改进Unet