华的专栏

讨论与进步

常用ARM汇编指令及ATPCS规则

在嵌入式开发中,汇编程序常常用于非常关键的地方,比如系统启动时的初始化,进出中断时的环境保存、恢复,对性能要求非常苛刻的函数等。 1、相对跳转指令: b 、 bl  不同之处在于: bl 指令除了跳转之外,还将返回地址( bl 的下一条指令的地址)保存在lr 寄存器中。 跳转范围:当前指...

2016-12-15 09:40:58

阅读数:277

评论数:0

arm中R0-R15寄存器的作用

根据“ARM-thumb 过程调用标准”: r0-r3    用作传入函数参数,传出函数返回值。在子程序调用之间,可以将 r0-r3 用于任何用途。             被调用函数在返回之前不必恢复 r0-r3。如果调用函数需要再次使用 r0-r3 的内容,则它必须保留...

2016-11-17 08:48:44

阅读数:5599

评论数:0

arm汇编指令之数据块传输(LDM,STM)详见

数据块传输指令用于加载(LDM)或者存储(STM)当前有效寄存器的任意子集。 它们支持所有可能的堆栈模式,维持空或者满的堆栈,此堆栈可以向上或者向下,在保存或者恢复内容, 移动主存储器的大数据块是非常有效的。 1,指令格式: {cond}     Rn{!},    {^}   ...

2016-11-17 08:48:12

阅读数:513

评论数:0

Arm汇编 位置无关代码 adr 指令

adr     r0, _start  得到的是_start的当前执行位置,由 pc+offset 决定的 得到有效地址 ldr     r0, =_start  得到的是绝对的地址,链接时决定; ------------------------------------------------...

2016-11-16 10:17:04

阅读数:269

评论数:0

ARM汇编指令MCR/MRC学习

MCR指令将ARM处理器的寄存器中的数据传送到协处理器的寄存器中。如果协处理器不能成功地执行该操作,将产生未定义的指令异常中断。 指令的语法格式: MCR{} p15, 0, , , {,} MCR2 p15, 0, , , {,} 其中,为指令执行的条件码。当忽略时指令为...

2016-11-16 10:12:58

阅读数:2124

评论数:0

ARM汇编,MCR和MRC

MRC 传送一个协处理器寄存器到一个 ARM 寄存器, MCR 做反方向传送(字母看起来象是写反了,记住在 ARM 汇编器中目的通常写在左边)。 MCR 传送 ARM 寄存器 Rd 的内容到协处理器。协处理器基于 ooo、dddd、qqq 和 MMMM 字段的值自由的做它想做的任何事情,尽管有一个...

2016-11-16 10:05:31

阅读数:294

评论数:0

ARM汇编指令MCR/MRC学习

MCR指令将ARM处理器的寄存器中的数据传送到协处理器的寄存器中。如果协处理器不能成功地执行该操作,将产生未定义的指令异常中断。 指令的语法格式: MCR{} p15, 0, , , {,} MCR2 p15, 0, , , {,} 其中,为指令执行的条件码。当忽略时指令为...

2016-11-16 09:56:04

阅读数:163

评论数:0

ORR 指令

ORR 指令的格式为:  ORR{条件}{S} 目的寄存器,操作数 1,操作数 2 ORR 指令用于在两个操作数上进行逻辑或运算,并把结果放置到目的寄存器中。操作数 1 应是一个寄存器,操作数 2 可以是一个寄存器,被移位的寄存器,或一个立即数。该指令常用于设置操作数 1 的某些位。  指...

2016-11-15 10:12:10

阅读数:771

评论数:0

开关中断与cpsid/cpsie指令

在汇编代码中,CPSID   CPSIE  用于快速的开关中断。 CPSID I ;PRIMASK=1, ;关中断 CPSIE I ;PRIMASK=0, ...

2016-11-15 10:08:52

阅读数:1014

评论数:0

MRS,MSR指令详解

在ARM处理器中,只有MRS(Move to Register from State register)指令可以对状态寄存器CPSR和SPSR进行读操作。通过读CPSR可以获得当前处理器的工作状态。读SPSR寄存器可以获得进入异常前的处理器状态(因为只有异常模式下有SPSR寄存器)。 例如:...

2016-11-12 11:04:40

阅读数:473

评论数:0

arm汇编—str,mov等指令

STR指令的格式为: STR{条件}  源寄存器, STR指令用亍从源寄存器中将一个32位的字数据传送到存储器中。该指令在程序设计中比较常 用,寻址方式灵活多样,使用方式可参考指令LDR。 指令示例: STR R0,[R1],#8             ;将R0中的字数据写入以R1...

2016-11-11 17:47:41

阅读数:2435

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭