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