ARM寄存器简介
[10-10 20:46:00] 来源:http://www.88dzw.com 其它硬件 阅读:8237次
文章摘要:其中<mode>是usr、svc、abt、und、irq和fiq的一种。R13通常用做堆栈指针。每一种模式都拥有自己的物理R13。程序初始化R13,使其指向该模式专用的栈地址。当进入该模式时,可以将需要使用的寄存器保存在R13所指的栈中,当退出该模式时,将保存在R13所指的栈中的寄存器值弹出。这样就实现了程序的现场保护。寄存器R14又被称为连接寄存器(LR),在ARM中有下面两种特殊用途。① 每一种处理器模式在自己的物理R14中存放当前子程序的返回地址。当通过BL或者BLX指令调用子程序时,R14被设置成该子程序的返回地址。在子程序中,当把R14的值复制到程序计数器PC中时,就实现
ARM寄存器简介,标签:其它硬件维修,http://www.88dzw.com其中<mode>是usr、svc、abt、und、irq和fiq的一种。
R13通常用做堆栈指针。每一种模式都拥有自己的物理R13。程序初始化R13,使其指向该模式专用的栈地址。当进入该模式时,可以将需要使用的寄存器保存在R13所指的栈中,当退出该模式时,将保存在R13所指的栈中的寄存器值弹出。这样就实现了程序的现场保护。
寄存器R14又被称为连接寄存器(LR),在ARM中有下面两种特殊用途。
① 每一种处理器模式在自己的物理R14中存放当前子程序的返回地址。当通过BL或者BLX指令调用子程序时,R14被设置成该子程序的返回地址。在子程序中,当把R14的值复制到程序计数器PC中时,就实现了子程序返回。
可以通过下面两种方式实现这种子程序的返回操作。
◆执行下面任何一条指令
MOV pc, LR
BX LR
◆在子程序入口使用下面指令将PC保存到栈中:
STMFD SP!, {registers}, LR}
相应地,下面的指令可以实现子程序的返回:
LDMFD SP!, { registers}, LR }
② 当发生异常中断的时候,该模式下的特定物理R14被设置成该异常模式将要返回的地址。对于某些异常,R14的值可能与将返回的地址有一个常数的偏移量。具体的返回方式与上面的子程序返回方式基本相同。
3)程序计数器PC→R15
程序计数器R15又被记作PC。它虽然可以作为一般的通用寄存器使用,但是有一些指令在使用R15时有一些特殊限制。当违反了这些限制时,该指令执行的结果将是不可预料的。
由于ARM采用了流水线机制,当正确读取了PC的值时,该值为当前指令地址值加8个字节。也就是说,对于ARM指令集来说,PC指向当前指令的下两条指令的地址。由于ARM指令是字对齐的,PC值的第0位和第1位总为0。需要注意的是,当使用指令STR/STM保存R15时,保存的可能是当前指令地址值加8字节,也可能保存的是当前指令地址加12字节。到底是哪种方式,取决于芯片具体设计方式。无论如何,在同一芯片中,要么采用当前指令地址加8,要么采用当前指令地址加12,不能有些指令采用当前指令地址加8,另一些指令采用当前指令地址加12。因此对于用户来说,尽量避免使用STR/STM指令来保存R15的值。当不可避免这种使用方式时,可以先通过一些代码来确定所用的芯片使用的是哪种实现方式。
上一页 [1] [2] [3] [4] [5] [6] [7] [8] 下一页
Tag:其它硬件,其它硬件维修,电脑技术 - 硬件维修 - 其它硬件
- 上一篇:电脑开机黑屏解决案例汇总
《ARM寄存器简介》相关文章
编辑推荐
- · 电脑常见故障分析与解决方法
- · Nero光盘刻录图解教程
- · 计算机启动故障的判断
- · 电脑突然黑屏故障原因分析及解决
- · 电视卡安装实例教程
- · 键盘鼠标故障维修
分类导航
最新更新
热门排行
- · 电脑常见故障分析与解决方法
- · Nero光盘刻录图解教程
- · 计算机启动故障的判断
- · 电脑突然黑屏故障原因分析及解决
- · 电视卡安装实例教程
- · 键盘鼠标故障维修
- · 安全第一 手把手教你如何换鼠标微动
- · 内存故障巧排除
- · 虚拟内存如何设置
- · 常见的鼠标故障以及解决方法