ARM伪指令

符号定义伪指令
    定义ARM汇编程序中的变量、对变量赋值以及定义寄存器的别名等操作
    定义全局变量的GBLA    GBLL    GBLS
    定义局部变量的LCLA    LCLL    LCLS  
    对变量赋值的SETA    SETL    SETS
    为通用寄存器列表定义名称的RLIST


    GBLA    全局变量名
    GBLA:定义一个全局数字变量,初始化为0
    GBLL :定义一个全局的逻辑变量,并初始化为F(假)
    GBLS:定义一个全局的字符串变量,初始化为空
    变量名必须唯一
    GBLA    test1
    test1     SETA    0xaa
    GBLL    test2
    test2    SETL    {TRUE}
    GBLS    test3
    test3 SETS    "testing"

名称 RLIST{寄存器列表}
将寄存器列表名定义为定义名称

标号    DCB    表达式
    分配一片连续的字节存储单元并用伪指令中指定的表达式初始化。
    Str    DCB    "This is a test!"分配一片连续的字节存储单元并初始化。
    Str = "This is a test"    DCB可用=代替

标号    SPACE     表达式
    用来分配一片连续的存储区域并初始化为0    表达式为要分配的字节数
    SPACE 可用%代替
    DataSpace    SPACE    100
    分配连续100字节的存储单元并初始化为0

MAP    表达式{,基址寄存器}
    定义一个结构化的内存表的首地址。MAP可用^代替。
    表达式为程序中的标号或数字表达式。首地址为表达式的值与
    基址寄存器的和。
    MAP    0x100定义结构化内存表首地址的值为0x100
    A    FIELD    16
    B    FIELD    32
    S    FIELD    256


标号    FIELD    表达式
    用于定义一个结构化内存表中的数据域。FIELD可用#代替。
    
AREA     段名    属性1,属性2,……
    CODE属性:代码段    默认为READONLY
    DATA属性:数据段    默认为READWRITE
    READONLY属性:只读
    READWRITE属性:可读可写

ALIGN属性,使用方式为
    ALIGN    表达式
    在默认时,ELF(可执行连接)的代码段和数据段是按字对齐的。
    一个汇编语言程序至少要包含一个段,当程序太长时,也可以将
    程序分为多个代码段和数据段。

    AREA    Init,    CODE,    READONLY
    定义一个代码段,段名为Init,属性为只读。

名称    EQU    表达式{类型}
    为常量、标号等定义一个行将的字符名称,类似于C语言中的#define
    Test EQU    50
    Addr    EQU    0x55,CODE32    定义Addr的值为0x55,且该处为32位
    的ARM指令

EXPORT    标号
    声明一个全局的标号,该标号可在其他的文件中引用,
    EXPORT可用GLOBAL代替。区分大小写
    AREA    Init,    CODE,    READONLY
    EXPORT    Stest
    声明一个可全局引用的标号Stest

IMPORT    导入一个全局变量


你可能感兴趣的:(ARM伪指令)