教材:嵌入式系统及应用,罗蕾、李允、陈丽蓉等,电子工业出版社
ARM 程序设计
- 由于 C 语言便于理解,有大量的支持库,所以它是当前 ARM 程序设计所使用的主要编程语言
- 对硬件系统的初始化、CPU 状态设定、中断使能、主频设定以及 RAM 控制参数初始化等 C 程序力所不能及的底层操作,还是要由汇编语言程序来完成
- ARM 程序通常是 C/C++ 语言和汇编语言的混合程序
ARM 汇编语言程序设计
段
在ARM(Thumb)汇编语言程序中,通常以段为单位来组织代码
段是具有特定名称且功能相对独立的指令或数据序列
根据段的内容,分为代码段和数据段
一个汇编程序至少应该有一个代码段,当程序较长时,可以分割为多个代码段和数据段
一个汇编语言程序段的基本结构
AREA Init, CODE, READONLY ;只读的代码段Init ENTRY ;程序入口点 start LDR R0,= 0X3FF5000 LDR R1,= 0XFF ;或MOV R1,#0XFF STR R1,[R0] LDR R0,= 0X3FF5008 LDR R1,= 0X01 ;或MOV R1,#0X01 STR R1,[R0] …… END ;段结束
每一个汇编程序段都必须有一条伪指令 END,指示代码段的结束
分支程序设计
- 具有两个或两个以上可选执行路径的程序叫做分支程序
- 执行到分支点时,应有条件指令或条件转移指令,根据当前 CPSR 中的状态标志值选择路径
普通分支程序
使用带有条件码的指令实现的分支程序段
CMP R5,#10 MOVNE R0,R5 MOV R1,R5
用条件转移指令实现的分支程序段