LDR指令与LDR伪指令的4种形式:
LDR R0,[R1]:指令,将R1指向的内存地址存放的内容加载到R0中;
LDR R0,LABEL:指令,将标号LABEL所代表的内存地址处存放的内容加载到R0中;
LDR R0,=10000:伪指令,将常熟10000赋予R0,采用LDR指令+文字池的方式实现;
LDR R0,=LABEL:伪指令,将标号LABEL所代表的内存地址赋予R0;
指令部分:
伪操作部分:
符号定义伪操作:定义变量,对变量进行赋值,定义寄存器名称
GBLA:全局的算术变量,初始化为0;
GBLL:全局的逻辑变量,初始化为{FALSE};
GBLS:全局的串变量,初始化为“”;
LCLA:局部的算术变量,初始化为0;
LCLL:局部的逻辑变量,初始化为{FALSE};
LCLS:局部的串变量,初始化为“”;
SETA:给算术变量赋值;
SETL:给逻辑变量赋值;
SETS:给串变量赋值;
RLIST:为一个通用寄存器列表定义名称;
CN:为一个协处理器的寄存器定义名称;
CP:为一个协处理器定义名称;
DN:为一个双精度的VFP寄存器定义名称;
SN:为一个单精度的VFP寄存器定义名称;
FN:为一个FPA浮点寄存器定义名称;
数据定义伪操作
LTORG:声明一个数据缓冲池的开始;
MAP:定义一个结构化的内存表的首地址,同义词为^;
FIELD:定义一个结构化内存表中的数据域,同义词#;
SPACE:分配一块内存单元,并用0初始化,同义词%;
{label} SPACE exprexpr表示分配的内存字节数;
DCB:分配一段字节内存单元,并用expr初始化之,同义词=;
{label} DCB expr, {expr}...expr是-128~255的数值或字符串;
DCD,DCDU:分配一段字内存单元,分配的内存都是字对齐的,并用expr初始化之,同义词&,DCDU分配的内存单元不严格字对齐;
DCDO:分配一段字内存单