首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

ARM指令集-模块控制伪指令

ARM指令集-模块控制伪指令

3.5.5  模块控制伪指令1、NAME和PROGRAM
该伪指令的格式为:
NAME 模块名
PROGRAM 模块名
NAMEPROGRAM伪指令用于定义一个程序模块。程序模块类似于C语言中的函数,是程序中相对独立的一个部分。程序模块即使没有被调用也会被无条件链接。
如:
NAME Main ;定义一个名为Main的程序模块
2、END和ENDMOD
END伪指令用于结束整个汇编语言程序,ENDMOD用于结束当前程序模块。每个汇编语言程序最后必须使用END伪指令通知汇编器已经到了源程序结尾,以结束汇编。
3、LIBRARY和MODULE
伪指令用于定义多模块文件中的小模块,其中每个小模块代表一段子程序,从而可以方便地创建库模块文件。与NAMEPROGRAM不同的是,用LIBRARYMODULE定义的模块只有在被调用时才会复制到链接代码中。
4、RTMODEL
该伪指令的格式为:
RTMODEL 关键字字符串,值字符串
该伪指令用于声明模块的运行模式属性,以强制模块之间的一致性。所有能被链接在一起的模块必须具有相同的关键字;值字符串要么具有相同的值,要么其值为星号*”。
3.5.6  汇编控制伪指令1、$和INCLUDE
该伪指令的格式为:
$ 文件名
INCLUDE 文件名
该伪指令用于给当前源文件加载头文件。
2、CASEOFF和CASEON
该伪指令用于源程序文件中禁止和允许大小写字符敏感。
3、LTORG
在使用ARM伪指令LDR加载地址数据时,要在适当的位置加入LTORG声明一个数据区,把要加载的数据保存在数据区内,再用LDR读出数据。LTORG伪指令通常放在无条件分支或子程序返回指令后面,这样处理器就不会错误的将数据区中的数据当作指令执行。
4、RADIX
该伪指令用于声明当前使用的数制形式。如:
RADIX 16D ;声明当前使用十六进制数
MOV R0#12;此处#120x12
5、IF、ELSE和ENDIF
该伪指令的格式为:
IF 逻辑表达式
指令序列1
ELSE
指令序列2
ENDIF
条件汇编伪指令能根据设定条件的成立与否决定是否对指令序列进行汇编生成目标代码。若逻辑表达式为真,则对指令序列1汇编生成目标代码;否则对指令序列2汇编。其中还可以用ELSEIF伪指令设定新条件。
如:
DEFINE Test ;定义一个全局变量Test
……
IF Test TRUE
指令序列1
ELSE
指令序列2
ENDIF
返回列表