ARM汇编程序基本知识
1.汇编程序的基本组成
ARM汇编语言程序中,程序是以程序段为单位组织代码的。段是相对独立的指令或者代码序列,拥有特定的名称。段的种类有代码段、数据段和通用段,代 码段的内容为执行代码,数据段存放代码运行时需要用到的数据,通用段不包含用户代码和数据,所有通用段共用一个空间。段使用AREA伪操作来定义,并且说 明相关属性,如
代码段定义
AREA Init, CODE, READONLY
…
数据段定义
AREA Stack1,DATA,READWRITE,NOINIT,ALIGN=3
……
等
一个汇编程序至少应该有一个代码段,可以有零或者多个数据段。在格式上,一个汇编程序需要至少有一个ENTRY(关于ENTRY具体内容看伪操作符ENTRY),还需要在汇编源文件结束处,写上END表示该源文件的结束。
如一个基本的汇编源程序
AREA Init, CODE, READONLY ;定义一个代码段
ENTRY ;标记程序入口点
Start LDR R0,0x3FF5000 ;标号Start可以要,也可以不要
LDR R1,0Xff
STR R1,[R0]
LDR R0,=0x3FF5000
LDR R1,0x01
STR R1,[R0]
……
END ;END伪操作表示本源文件结束
当汇编程序较长时,可以分割为多个代码段和多个数据段,多个段在程序编译链接时,最终形成一个可执行的映像文件。一个可执行映像文件通常由以下几部分组成