lr(r14)的作用问题,这个lr一般来说有两个作用:
1.当使用bl或者blx跳转到子过程的时候,r14保存了返回地址,可以在调用过程结尾恢复。
2.异常中断发生时,这个异常模式特定的物理R14被设置成该异常模式将要返回的地址。
另外注意pc,在调试的时候显示的是当前指令地址,而用mov lr,pc的时候lr保存的是此指令向后数两条指令的地址,大家可以试一下用mov pc,pc,结果得到的是跳转两条指令,这个原因是由于arm的流水线造成的,预取两条指令的结果.
关键字:ARM汇编
引用地址:
ARM汇编中lr(r14)寄存器的作用
推荐阅读最新更新时间:2024-03-16 14:58
S3C44B0的初始化程序的理解
S3C44B0的初始化程序就是初始化各个关键的寄存器,建立中断向量,然后转移到主函数去执行程序。不过S3C44B0不支持地址映射,所以程序不COPY到RAM种执行。S3C44B0初始化对我们广大初学者来说,比较难理解的是中断的处理和一些少见的操作符号,S3C44B0的中断子程序地址存放在初始化程序最后就是 HandleADC # 4 HandleRTC # 4 HandleUTXD1 # 4 HandleUTXD0 # 4 HandleSIO # 4 HandleIIC # 4 HandleURXD1 # 4 HandleURXD0 # 4 这一段,它的其实地址是ISR_STA
[单片机]
STM32里的基础配置(寄存器,库函数)
前言 所有IO口配置,芯片:STM32F103R8T6 一、配置LED /**************************** 函数名称:LED_Config 函数作用:LED初始化 管脚: LED1 PB0 LED2 PB1 ****************************/ LED.c 寄存器: #include led.h void LED_Config(void) { RCC- APB2ENR |= (1 3);//GPIOB GPIOB- CRL &= ~(0XF 0);//清零操作 GPIOB- CRL |= (0X3 0); GPIOB- CRL &=
[单片机]
MSP430寄存器的设置与作用
*标准的寄存器和位定义为德州仪器 * MSP430微控制器。 * *本文件支持汇编语言和C开发 * MSP430x14x设备。 * *德州仪器,2.4版 * *牧师1.2,其他定时器B位定义。 *更名为XTOFF到XT2OFF。 *牧师1.3,去掉前导0到避免解释为八进制 *在C值 *牧师1.4,更正LPMx_EXIT引用新的内在_BIC_SR_IRQ *改变TAIV和TBIV只读 *版本1.5,请将所有的#define语句用括号 *版本1.6,定义的向量USART(除了UART) *牧师1.7,添加USART的特殊功能的标签(UxME,UxIE UxIFG) * 2.1版,对准定义成为用户指南和版本号 * 2.2版,固定式(更换
[单片机]
基于CPLD的位同步时钟提取电路设计
引言 异步串行通信是现代电子系统中最常用的数据信息传输方式之一,一般情况下,为了能够正确地对异步串行数据进行发送和接收,就必须使其接收与发送的码元同步,位同步时钟信号不仅可用来对输入码元进行检测以保证收发同步,而且在对接收的数字码元进行各种处理等过程中,也可以为系统提供一个基准的同步时钟。 本文介绍的位同步时钟的提取方案,原理简单且同步速度较快。整个系统采用VerilogHDL语言编写,并可以在CPLD上实现。 位同步时钟的提取原理 本系统由一个跳变沿捕捉模块、一个状态寄存器和一个可控计数器共三部分组成,整个系统的原理框图如图1所示,其中data_in是输入系统的串行信号,clock是频率为串行信号码元速率2N倍的高精度时
[应用]
ARM学习笔记5——程序状态寄存器
当前程序状态寄存器CPSR可以在任何位处理器模式下被访问,它包含条件码标志、中断控制、当前处理器模式以及其他状态和控制信息。CPSR的结构图如下: 一、条件标志位 CPSR最高4位:N(Negative)、Z(Zero)、C(Carry)和V(oVerflow)称为条件标志位。程序名中的算术或逻辑指令可以根据其执行结果修改这些条件标志位,之后的条件执行指令可以根据这些条件标志决定相应的指令是否被执行。各条件标志位的具体含义如下: 1、N(符号位) 该位设置为当前指令运行结果的BIT 的值。当两个由补码表示的有符号整数运算时,N=1表示运算的结果为负数;N=0表示结果为正数或零。 2、Z(零标志位)
[单片机]
MSP430第二十五章:32位乘法器
1. 32位乘法器(MPY32)介绍 MPY32是不属于CPU的外围模块,这意味着它的活动不会影响CPU活动。乘法器寄存器是外围寄存器,用CPU指令加载和读取。 MPY32支持: 无符号乘法 有符号乘法 累计无符号乘法 累计有符号乘法 8、16、24、32位运算 分数运算 8位和16位操作兼容16位硬件乘法器 不需要“符号扩展”指令的8位和24位乘法 2. MPY32操作 MPY32支持8位、16位、24位和32位操作数进行无符号乘、有符号乘、无符号乘累积和有符号乘累积操作。操作数的大小由操作数被写入的地址以及是否以字或字节的形式写入来定义。操作的类型是根据第一个操作数写入的地址来选择的。硬件乘法器有两个32位的操作数
[单片机]
ARM处理器模式及寄存器
一、ARM处理器模式: ARM微处理器支持7种运行模式,分别为: 用户模式(usr): ARM处理器正常的程序执行状态。 快速中断模式(fiq):用于高速数据传输或通道处理。 外部中断模式(irq):用于通用的中断处理。 管理模式(svc): 操作系统使用的保护模式。软中断和复位 数据访问中止模式(abt): 当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。 系统模式(sys): 运行具有特权的操作系统任务。 未定义指令中止模式(und):当未定义的指令执行时进入该模式,可用于支持硬件协处理器
[单片机]