ARM
Alan0521
这个作者很懒,什么都没留下…
展开
-
LDR指令
ARM指令集中,LDR通常都是作加载指令,但是它也可以作伪指令。初学者一般不会注意到它们的区别,其实在嵌入式开发过程中,这两条指令时非常常用的!我们应该了解他们的区别。LDR伪指令的形式是“LDR Rn,=expr”。作用是装在一个32bit常数和一个地址到寄存器。下面举一个例子来说明它的用法。COUNT EQU 0x56000054LDR R1,=CO转载 2012-06-19 20:17:35 · 1412 阅读 · 0 评论 -
Cortex-M3那点事
一:寄存器组Cortex-M3处理器拥有R0-R15的寄存器组: R0-R12是通用寄存器。R13作为堆栈指针SP有两个,但在同一时刻只有一个起作用。(MSP: 复位后默认使用的堆栈指针,用于操作系统内核以及异常处理例程,PSP: 由用户的应用程序代码使用)R14: 连接寄存器。R15:程序寄数器,指向当前的程序地址。特殊功能寄存器:● 程序状态寄存器组(PSR转载 2012-06-20 14:20:43 · 1624 阅读 · 0 评论 -
ARM 三级流水线
ARM处理器使用流水线来增加处理器指令流的速度,这样可使几个操作同时进行,并使处理与存储器系统之间的操作更加流畅,连续,能提供0.9MIPS/MHZ的指令执行速度。 PC代表程序计数器,流水线使用三个阶段,因此指令分为三个阶段执行:1.取指(从存储器装载一条指令);2.译码(识别将要被执行的指令);3.执行(处理指令并将结果写回寄存器)。而R15(PC)总是指向“正在转载 2012-06-22 20:12:01 · 6105 阅读 · 0 评论 -
ARM的BX指令
bx的语法格式BX{} <Rm><cond>为指令执行的条件码。当<cond>忽略时指令为无条件执行。<Rm>该寄存器中为跳转的目标地址。当寄存器的bit[0]为0时,目标地址处的指令为ARM指令;当寄存器的bit[0]为1时,目标地址处的指令为Thumb指令。看一段简单程序的片段,不用考虑省略号的内容,看框架就可以了! EXPORT LEDTEST转载 2012-06-22 18:57:30 · 1343 阅读 · 0 评论 -
LPC11C14(Cortex-m0-->ARM7)启动代码分析
启动代码是芯片复位后进入C语言的main()函数前执行的一段代码,主要为运行C语言程序提供基本运行环境。启动代码文件:startup.s。startup.s包含异常向量表和系统初始化代码,保存C语言使用的堆和栈的开始位置,包括异常处理程序和目标板特殊的代码。汇编学习:ARM伪指令,在汇编程序中经常会被使用,包括以下几条: — AREA — ALIGN转载 2012-07-11 22:58:18 · 2519 阅读 · 0 评论 -
ARM汇编伪指令介绍
在 ARM 汇编语言程序里,有一些特殊指令助记符,这些助记符与指令系统的助记符不同,没有相对应的操作码,通常称这些特殊指令助记符为伪指令,他们所完成的操作称为伪操作。伪指令在源程序中的作用是为完成汇编程序作各种准备工作的,这些伪指令仅在汇编过程中起作用,一旦汇编结束,伪指令的使命就完成。 在 ARM 的汇编程序中,有如下几种伪指令:符号定义伪指令、数据定义伪指令、汇编控转载 2012-07-11 22:59:32 · 691 阅读 · 0 评论 -
LDR指令、LDR伪指令、ADR伪指令区别
引例如下: 先看一段代码: AREA test,CODE,READONLY ENTRY ldr r0,__main adr r0,__main ldr r0,=__main nop _转载 2012-08-28 10:36:41 · 1428 阅读 · 0 评论