微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > ARM指令集详解2

ARM指令集详解2

时间:11-20 来源:互联网 点击:

READWRITE;指定本段为可读可写,数据段的默认属性READWRITE。

ALIGN属性,使用方式为:

ALIGN 表达式

在默认时,ELF的代码段和数据段是按字对齐的。

一个汇编语言程序至少要包含一个段,当程序太长时,也可以将程序分为多个代码段和数据段。

AREA Init,CODE,READONLY

该伪指令定义了一个代码段,段名为Init,属性为只读。

ALIGN {表达式{偏移量}}

ALIGN伪指令可通过添加填充字节的方式,使当前位置满足一定的对齐方式。其中,表达式的值用于指定对齐方式,可能的取值为2的幂,如1,2,4,8,16等。若未指定表达式,则将当前位置对齐到下一个字的位置。偏移量也为一个数字表达式,若使用该字段,则当前位置的对齐方式为:2的表达式次幂+偏移量。

AREA Init,CODE,READONLY,ALIGN=3

指定后面的指令为8字节对齐。

CODE16(或CODE32)

CODE16伪指令通知编译器,其后的指令序列为16位的Thumb指令。CODE32伪指令通知编译器,其后的指令序列为32位的ARM指令。因此,在使用ARM指令和Thumb指令混合编程的代码里,可用这两条伪指令进行切换,但注意他们只通知编译器其后指令的类型,并不能对处理器进行状态的切换。

ENTRY

ENTRY伪指令用于指定汇编程序的入口点,在一个完整的汇编程序中至少要有一个ENTRY(也可有多个,当有多个ENTRY时,程序的真正入口点由链接器指定),但在一个源文件里最多只能有一个ENTRY。

名称 EQU 表达式{类型}

EQU伪指令用于为程序中的常量、标号等定义一个等效的字符名称,类似于C语言中的#define。其中EQU可用“*”代替。

Test EQU 50

Addr EQU 0x55,CODE32;定义Addr的值为0x55,且该处为32位的ARM指令。

EXPORT 标号

EXPORT伪指令用于在程序中声明一个全局的标号,该标号可在其他的文件中引用。EXPORT可用GLOBAL代替。标号在程序中区分大小写。

AREA Init,CODE,READONLY

EXPORT Stest

声明一个可全局引用的标号Stest

IMPORT 标号

IMPORT伪指令用于通知编译器要使用的标号在其他的源文件中定义,但要在当前源文件中引用。标号在程序中区分大小写。

AREA Init,CODE,READONLY

IMPORT Main

通知编译器当前文件要引用标号Main,但Main在其他源文件中定义

END

END伪指令用于通知编译器已经到了源程序的结尾。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top