新闻中心

EEPW首页>嵌入式系统>设计应用> ARM·汇编伪指令

ARM·汇编伪指令

作者: 时间:2016-11-24 来源:网络 收藏
ARM汇编程序中,有如下几种伪指令
*符号定义伪指令
*数据定义伪指令
*汇编控制伪指令
*信息报告伪指令
*宏指令以及其他伪指令
【符号定义伪指令】
定义局部变量LCLA,LCLL,LCLS
定义 全局变量GBLA,GBLL,GBLS
对变量赋值SETA,SETL,SETS

【数据定义伪指令】
DCB
DCW/DCWU
DCD/DCDU
DCQ/DCDU
DCFS/DCFSU
DCFD/DCFDU
SPACE
FIELD
MAP
*DCB 表达式 用于分配一片连续的字节
*DCW/DCWU 表达式 用于分配一片连续的半字
*DCD/DCDU 表达式 用于分配一篇连续的字
*DCQ/DCQU 表达式 用于分配连续的8个字节
*DCFD/DCFDU 表达式 用于为双精度 浮点数分配一片连续的字存储单元
*DCFS/DCFSU 表达式 用于为单精度浮点数分配一片连续的字存储单元
*SPACE 表达式 用于分配一片连续的存储区域并初始化为0,表达式是要分配的字节数
*MAP FI LED
MAP 定义一个结构化的内存表的首地址
[MAP 0x100, R0] 首地址0x100+R0
FILED 定义一个结构化内存表中的数据域
[MAP 0x30000000
A FILED 4
B FILED 4
C FILED 4]
【汇编控制伪指令】
*MACRO MEND 宏名
*IF···ELSE···ENDIF [ | ]
*WHILE····WEND
*NEXIT 从宏中退出
【一些其他的伪指令】
*ASSERT 逻辑表达式
必须满足这一条件才可以进行编译
*ALIGN [表达式[,偏移量]]
AREA Init, CODE, READONLY, ALIGN=3
*AREA 段名 属性
DATA 数据段 默认READWRITE
CODE 代码段 默认READONLY
*NOINIT 内存单元初始化0
*ALIGN
*COMMON 通用段(不包括数据段和代码段)
*ENTRY
*END
*EQU (NUM EQU 100)(相当于c语言中的#define)
*EXPORT 声明一个全局变量
IMPORT IMPORT Main (引用Main变量,但Main不是在这个程序中定义的)
EXPORT 和IMPORT一样,但是源文件中若没有引用,则该标号不会出现
*RN 给寄存器改名字
temp RN R0
*GET/INCLUDE (相当于c语言中的include)
*INCBIN 文件名 (这个指令待程序中再做考虑)
INCBIN 2440test.bin
*NOP
【关于标签····】
【关于标号····】
【c/c++以及汇编语言的混合编程】
使用内嵌汇编器后,可以在c/c++源程序中直接使用大部分的ARM指令和Thumb指令
在ARM c语言程序中使用关键词_asm来标识一段 汇编指令
_asm
{
intstruction[; instrucition]
····
[instruction]
}


关键词:ARM汇编伪指

评论


技术专区

关闭