LR寄存器是ARM中的链接寄存器,程序跳转(子程序调用,中断跳转)后,arm自动在该寄存器中存入原程序(未跳转)的下一条指令的地址,也叫函数调用返回地址。当一个函数被调用时,LR寄存器会存储调用该函数的下一条指令的地址,当函数执行完毕后,程序会跳转到LR寄存器中存储的地址继续执行。 r15:程序计数器,也称为pc寄存器。
ARM 内核SP,LR,PC寄存器ARM内核SP,LR,PC寄存器 深入理解ARM的这三个寄存器,对编程以及操作系统的移植都有很大的 裨益。1、堆栈指针r13(SP):每一种异常模式都有其自己独立的r13,它通 常指向异常模式所专用的堆栈,也就是说五种异常模式、非异常模式(用户模 式和系统模式),都有各自独立的堆栈,用不同的堆栈指针...
2、连接寄存器r14(LR):每种模式下r14都有自身版组,它有两个特殊功能。 (1)保存子程序返回地址。使用BL或BLX时,跳转指令自动把返回地址放入r14中;子程序通过把r14复制到PC来实现返回,通常用下列指令之一: MOV PC, LR BX LR 通常子程序这样写,保证了子程序中还可以调用子程序。 stmfd sp!, {lr} …… ldmf...
这样当ARM进入异常模式的时候,程序就可以把一般通用寄存器压入堆栈,返回时再出栈,保证了各种模式下程序的状态的完整性。 2、连接寄存器r14(LR):每种模式下r14都有自身版组,它有两个特殊功能。 (1)保存子程序返回地址。使用BL或BLX时,跳转指令自动把返回地址放入r14中;子程序通过把r14复制到PC来实现返回,通常用下...
2、连接寄存器r14(LR):每种模式下r14都有自身版组,它有两个特殊功能。 (1)保存子程序返回地址。使用BL或BLX时,跳转指令自动把返回地址放入r14中;子程序通过把r14复制到PC来实现返回,通常用下列指令之一: MOV PC, LR BX LR 通常子程序这样写,保证了子程序中还可以调用子程序。
2、连接寄存器r14(LR):每种模式下r14都有自身版组,它有两个特殊功能。 (1)保存子程序返回地址。使用BL或BLX时,跳转指令自动把返回地址放入r14中;子程序通过把r14复制到PC来实现返回,通常用下列指令之一: MOV PC, LR BX LR 通常子程序这样写,保证了子程序中还可以调用子程序。
深入理解SP、LR和PC 深入理解ARM的这三个寄存器,对编程以及操作系统的移植都有很大的裨益。 1、堆栈指针r13(SP):每一种异常模式都有其自己独立的r13,它通常指向异常模式所专用的堆栈,也就是说五种异常模式、非异常模式(用户模式和系统模式),都有各自独立的堆栈,用不同的堆栈指针来索引。这样当ARM进入异常模式的...
r13:栈指针,也称为sp寄存器 r14:连接寄存器,也称为lr寄存器,程序跳转(子程序调用,中断跳转)后,arm自动在该寄存器中存入原程序(未跳转)的下一条指令的地址。 r15:程序计数器,也称为pc寄存器,保存的是当前正在取指的指令的地址(arm采用2级流水线,因此是当前正在执行指令的地址+8)。
))。任务切换会改变CPU的PC、SP和各种寄存器,本文简单对LR、PC和SP寄存器进行介绍。 1. LR LR用途有二,一是保存子程序返回地址,当调用BL、BX、BLX等跳转指令时会自动保存返回地址到LR;二是保存异常发生的异常返回地址。 2. PC PC(Program Counter)为程序计数器,用于保存程序的执行地址,在ARM的三级流水线架构中...
深入理解 SP、LR 和 PC 深入理解 ARM 的这三个寄存器 对编程以及操作系统的移植都有很大的裨益。 1、堆栈指针 r13 SP 每一种异常模式都有其自己独立的 r13 它通常指向异常模式所专用的堆栈 也就是说五种异常模式、非异常模式 用户模式和系统模式 都有各自独立的堆栈 用不同的堆栈指针来索引。这样当 ARM 进入...