文档介绍:第五章基于ARM的程序设计
ARM汇编语言设计-符号
内
ARM汇编语言设计-符号—变量
变量——值在程序的运行过程中可以改变的量
数字变量——用于在程序的运行中保存数字值
注意:数字值的大小不应超出其所能表示的范围
逻辑变量——用于在程序的运行中保存逻辑值
真或假
字符串变量——用于在程序的运行中保存一个字符串
注意:字符串的长度不应超出其所能表示的范围
在 ARM 汇编语言程序设计中
使用 GBLA 、 GBLL 、 GBLS 伪指令声明全局变量
使用 LCLA 、 LCLL 、 LCLS 伪指令声明局部变量
使用 SETA 、 SETL 、 SETS 对其进行初始化
ARM汇编语言设计-符号--常量
常量——其值在程序运行过程中不能被改变的量
数字常量
三种表达方式
取值范围
逻辑常量
{true}{false}
字符串常量
“字符串”
“”
$
L
ARM汇编语言设计-符号--变量代换
变量可通过代换操作取得一个常量(代换符为$)
$数字变量----将该其值转换为十六进制的字符串,并将该十六进制的字符串代换“$ ”后的数字变量
$逻辑变量----将该逻辑变量代换为它的取值(真或假)
$字符串变量----将其值代换“$ ”后的字符串变量
举例
LCLS S1 ;定义局部字符串变量S1 和S2
LCLS S2
S1 SETS “ Test! ”
S2 SETS “ This is a $S1 ”
;字符串变量S2 的值为“ This is a Test! ”
ARM汇编语言设计-程序结构
在 ARM 汇编语言程序中,以程序段为单位组织代码
段——相对独立的指令或数据序列,具特定名称
代码段:存放执行代码
数据段:存放代码运行时需要用到的数据
一汇编程序至少应该有一个代码段
当程序较长时,可以分割为多个代码段和数据段
多个段在程序编译链接时最终形成一个可执行的映象文件
ARM汇编语言设计-程序结构
可执行映象文件构成
一个或多个代码段,代码段的属性为只读
0个或多个包含初始化数据的数据段,数据段的属性为可读写
0个或多个不包含初始化数据的数据段,数据段的属性为可读写
链接器根据系统默认或用户设定的规则,将各个段安排在存储器中的相应位置(源程序中段之间的相对位置与可执行的映象文件中段的相对位置一般不会相同)
ARM汇编语言设计-程序结构
AREA Init , CODE , READONLY
ENTRY
Start
LDR R0 , =0x3FF5000
LDR R1 , 0xFF
STR R1 , [R0]
LDR R0 , =0x3FF5008
LDR R1 , 0x01
STR R1 , [R0]
┉┉
END
代
码
段
ARM汇编语言设计-程序结构
数
据
段
ARM汇编语言设计-宏的使用
定义宏
MACRO ;宏的起始
{label} macroname para1,para2…;代码
MEND ;宏结束
引用宏
marconame para1,para2……