R14也称作子程序连接寄存器(Subroutine Link Register)或连接寄存器LR。当执行BL子程序调用指令时,R14中得到R15(程序计数器PC)的备份。

其他情况下,R14用作通用寄存器。与之类似,当发生中断或异常时,对应的分组寄存器R14_svc、R14_irq、R14_fiq、R14_abt和R14_und用来保存R15的返回值。

寄存器R14常用在如下的情况:

在每一种运行模式下,都可用R14保存子程序的返回地址(也就是 R15  PC ),当用BL或BLX指令调用子程序时,将PC的当前值拷贝给R14,执行完子程序后,又将R14的值拷贝回PC,即可完成子程序的调用返回。以上的描述可用指令完成:

1、执行以下任意一条指令:

MOV       PC,LR

BX        LR

2、在子程序入口处使用以下指令将R14存入堆栈:

STMFD   SP!,{<Regs>,LR}

对应的,使用以下指令可以完成子程序返回:

LDMFD   SP!,{<Regs>,PC}

R14也可作为通用寄存器。

由于ARM体系结构采用了多级流水线技术,对于ARM指令集而言,PC总是指向当前指令的下两条指令的地址,即PC的值为当前指令的地址值加8个字节。

(转载)R14也称作子程序连接寄存器的更多相关文章

  1. [转载]tornado.database添加PooledDB连接池功能

    转载自 http://chenxiaoyu.org/2009/12/01/python-tornado-dbutil.html tornado.database模块简单包装了下对MySQL的操作,短小 ...

  2. 【转载】在使用JDBC连接MySql时报错:You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support

    在使用JDBC连接MySql时报错:You must configure either the server or JDBC driver (via the serverTimezone config ...

  3. [转载]ac mysql 无法远程连接

    Mac mysql 无法远程连接 2018年07月23日 10:56:02 feixiang2039 阅读数 2866   版权声明:本文为博主原创文章,遵循CC 4.0 by-sa版权协议,转载请附 ...

  4. 【转载】通过sql server 连接mysql

    http://www.cnblogs.com/goole/p/5291286.html 1.在SQL SERVER服务器上安装MYSQL ODBC驱动; 驱动下载地址:http://dev.mysql ...

  5. 【转载-译文】requests库连接池说明

    转译自:https://laike9m.com/blog/requests-secret-pool_connections-and-pool_maxsize,89/ Requests' secret: ...

  6. 转载:sql用逗号连接多张表对应哪个join?

    http://blog.csdn.net/huanghanqian/article/details/52847835 四种join的区别已老生常谈: INNER JOIN(也可简写为JOIN): 如果 ...

  7. 【转载】解决telnet无法连接 Connection refused

    原文:解决telnet无法连接 Connection refused telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式.它为用户提供了在本地计算机上完成 ...

  8. (转载)SQL Server 2008 连接JDBC详细图文教程

    点评:SQL Server 2008是目前windows上使用最多的sql数据库,2008的安装机制是基于framework重写的,特点是非常耗时间SQL Server 2008是目前windows上 ...

  9. (转载)SQL— CONCAT(字符串连接函数)

    有的时候,我们有需要将由不同栏位获得的资料串连在一起.每一种资料库都有提供方法来达到这个目的: MySQL: CONCAT() Oracle: CONCAT(), || SQL Server: + C ...

随机推荐

  1. phpcms v9模版调用代码大全(全面而实用)

    首页调用栏目 {pc:content action="category" siteid="$siteid" num="15" order=& ...

  2. NRF51822之动态广播使用

    本教程基于nRF51_SDK_10.0.0_dc26b5e\examples\ble_peripheral\ble_app_uart工程 本教程主要是演示 现在演示通过nus来修改ADV中maufac ...

  3. HttpWebResponse返回信息

    CharacterSet "ISO-8859-1" string 获取响应的字符集. 这个目前不知道是干嘛用的 ContentEncoding "" strin ...

  4. Android生命周期详细说明

    提供两个关于Activity的生命周期模型图示帮助理解:                                           图1 图2 从图2所示的Activity生命周期不难看出, ...

  5. const 修饰函数

    At the very first ,I got a problem . Vector Vector::operator+(const Vector &v)const{ return Vect ...

  6. 编写SqlHelper使用,在将ExecuteReader方法封装进而读取数据库中的数据时会产生Additional information: 阅读器关闭时尝试调用 Read 无效问题,解决方法与解释

    在自学杨中科老师的视频教学时,拓展编写SqlHelper使用,在将ExecuteReader方法封装进而读取数据库中的数据时 会产生Additional information: 阅读器关闭时尝试调用 ...

  7. [LeetCode]题解(python):090 Subsets II

    题目来源 https://leetcode.com/problems/subsets-ii/ Given a collection of integers that might contain dup ...

  8. 一个例子深入理解ClassLoader

    文件类加载器,该加载器重载了loadClass方法,逻辑是只读取文件来加载类,不委托给父类加载器进行加载 package com.ydd.study.hello.classloader; import ...

  9. tomecat 配置修改 及启动配置

    a.如果tomcat是以bat方式启动的,则如下设置: 修改TOMCAT_HOME/bin/catalina.sh 在“echo "Using CATALINA_BASE: $CATALIN ...

  10. php 配置本地自定义域名

    一.设置host文件 二.设置httpd.conf # Virtual hosts Include conf/extra/httpd-vhosts.conf 三.设置httpd-vhosts.conf ...