ARM汇编语言编程详解
硅谷芯微嵌入式学院 技术贡献
½址:www.threeway.cc
4.1
汇编语言
½用汇编语言编写程序,它的特点是程序执行速
度快,程序代码生成量少,½汇编语言是一种不易学
习的编程语言,并且可读性较差,这种语言属于½级
语言。每一种汇编语言对应每一款芯片,½用这种语
言需要对硬件有深刻的了解。在通常情况下,可以½
用汇编语言编写驱动程序、需要严格计算执行时间的
程序以及需要加速执行的程序。
•
4.1.1
ARM汇编程序的格式(1)
先介绍一个例子来说明ARM汇编程序的格式。
例1 计算20+8,结果放入R0寄存器。
AREA
Count
Buf, DATA, READWRITE
DCB
20
; 声 明 数 据 段
Buf
; 定 义 一 个 字 节 单 元
Count
; 声 明 代 码 段
Example
;标识程序入口
; 声 明
32½ ARM指
令
;
R0 = Count =20
;
R1 = 8
;
R0 = R0 + R1
AREA
Example, CODE, READONLY
ENTRY
CODE32
START
LDRB
MOV
ADD
B
END
R0, Count
R1, #8
R0, R0, R1
START
•
4.1.1
ARM汇编程序的格式(2)
例1中定义了两个段:数据段Buf和代码段Example
。数据段中定义了字节单元Count,其中Count用来保
存一个被加数;代码段中包含了所有源程序代码,程序
中首先读取Count字节单元的内容,然后与立即数8相
加,计算结果保存到R0中。
由例1可见,ARM汇编语言的源程序是分段的,由
若干个段组成一个源程序。源程序的一般格式为:
AREA
标号
name1, attr
语句
1
...
语句
n
name2, attr
语 句
n+1
...
语 句
n+m
;结束符
;声明特定的段
;语句
AREA
标号
END
•
4.1.1
ARM汇编程序的格式(3)
每一个段½有一个名字,并且段名是唯一的。每个
段以符号AREA½为段的开始,以碰到下一个符号AREA
½为该段的结束。段½有自己的属性,如是代码段(
CODE)还是数据段(DATA),是只读(READONLY
)还是可读写(READWRITE)?这些属性可以在attr栏
中设定。
注意:符号AREA和END½不½顶格写,只有标号可以
而且必须顶格写。
评论