AREA指令:
用于定义一个代码段或数据段;

语法格式:

    AREA  段名, 属性1, 属性2, ...

常用属性:

CODE属性:用于定义代码段,默认为READONLY;
DATA属性:用于定义数据段,默认为READWRITE;
READONLY属性:指定本段为只读;
READWRITE属性:指定本段为读写;

ALIGN属性:指定字节对齐,其值表示的意思是2的次幂;

使用示例:

    AREA  Init, CODE,READONLY,ALIGN=3

定义了一个名称为Init的只读代码段,8字节对齐;


CODE16/CODE32指令:

通知编译器其后的指令为Thumb/ARM指令;


ENTRY指令:

指定汇编程序的入口点,在一个完整的汇编程序中,至少要有一个ENTRY;
如果有多个ENTRY时,程序入口由链接器指定;
但一个源文件中最多只能有一个ENTRY(也可以没有);


EQU指令:
用于为程序中的常量,标号等定义一个等效的字符串名称;
其中EQU可以用 “*”代替;

使用示例:

TEST EQU 50           ; 定义标号TEST的值为50
ADDR EQU 0x55, CODE32 ; 定义标号ADDR的值为0x55,并且该处为32位的ARM指令

IF指令:
根据条件是否成立与否决定是否执行某个指令序列。
ARM的汇编语句中有一些语句是放在了方括号[ ]中的,
[与IF同义,|与ELSE同义, ]与ENDIF同义

形式一:

    [   条件语句        
        指令序列
    ]

相当于

    IF 条件语句        
       指令序列1
    ENDIF

其意义是:如果第一句条件语句为真,则下面的执行语句有效,否则跳出方括号。

形式二:

    [ 条件语句
        指令序列1
    |
        指令序列2
    ]

相当于

    IF 条件语句
       指令序列1
    ELSE
       指令序列2
    ENDIF

WHILE指令:
根据条件是否成立与否决定是否循环执行某个指令序列。

    WHILE  条件语句
        指令序列
    WEND