- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1
2
ARM伪指令及应用程序设计
ARM汇编程序设计实例
内容提要
符号定义伪指令及例程
(1)GBLA定义全局数字变量并初始化为0。格式如下:
GBLA 变量名
(2)GBLS定义全局字符串变量并初始化为空串。格式如下:
GBLS 变量名
(3)GBLL定义全局逻辑变量并初始化为FALSE。格式如下:
GBLL 变量名
(4)SETA给数字变量赋值。格式如下:
变量名 SETA 数值
(5)SETS给字符串变量赋值。格式如下:
变量名 SETS 字符串;
(6)SETL给逻辑变量赋值。格式如下:
变量名 SETL 逻辑{TRUE/FALSE}
符号定义伪指令及例程
(7)LCLA定义一个局部数字变量,并初始化为0。格式如下:
LCLA 变量名
(8)LCLS定义一个局部字符串变量,并初始化为空串。格式如下: LCLS 变量名
(9)LCLL定义一个局部逻辑变量,并初始化为FALSE。格式如下: LCLL 变量名
(10)MACRO MEND。定义宏。格式如下:
MACRO
[$标号] 宏名 [参数1,参数2,参数3……..]
指令序列
MEND
其中,MACRO表明一个宏定义的开始,MEND表示宏结束。
符号定义伪指令及例程
GBLS String1 ;定义一个全局的字符串变量
GBLL Logic ;定义一个全局逻辑变量
GBLA var ;定义一个全局数字变量
String1 SETS test ;String1付值为test;;;;;定义变量值要顶格写
Logic SETL {TRUE} ;Logic付值为TRUE,
var SETA 0Xff ;var付值为0xff
;-----------------------------------------------------以上为定义变量及初始化
MACRO ;宏定义开始,宏一定要在前面定义,否则不能识别
$HandlerLabel HANDLER $p1,$p2 ;$HandlerLabel为标号,
;HANDLER为宏名$p1,$p2为参数
CLA var ;定义一个局部数字变量,在宏中定义局部变量,
;不影响全局变量
LCLS String ;定义一个局部字符串变量
LCLL Logic ;定义一个局部逻辑变量
var SETA 0x11 ;var付值为0x11
Logic SETL {FALSE} ;Logic付值为FALSE,
String SETS not test ;String1付值为not test
符号定义伪指令及例程
$HandlerLabel ;标号$HandlerLabel
MOV R1,#var ;R1=var这里的var是宏体内的局部变量
INFO 0,String1 ;第一次扫描的时候提示String1
MOV R3,$#p1 ;R3=p1
MOV R4,$#p2 ;R4=p2
MEND ;宏定义结束
;--------------------------------------------------------------以上定义宏
AREA EXAMPLE3,CODE,READONLY
ENTRY
START
HandlerFIQ HANDLER 3,5 ;向宏HANDLER传送两个参数为3,5
MOV R3,#0 ;R3=0
MOV R4,#1 ;R4=1
END1
B END1 ;死循环,程序结束
END
数据定义伪指令及例程
(1)DCB 分配连续的字节储存单元并使用指定数据初始化。格式如下:
标号 DCB 表达式
(2)DCW/DCWU 分配连续的半字(2字节)储存单元并使用指定数据初始化。格式如下:
标号 DCW/DCWU 表达式
(3)DCQ/DCQU 分配一块8个字节为单位连续的储存单元并使用指定数据初始化。格式如下:
标号 DCQ/DCQU 表达式
(4)DCD分配连续的字(4字节)储存单元并使用指定数据初始化。
标号 DCD 表达式
数据定义伪指令及例程
(5)DCFS/DCFSU 为单精度浮点数分配连续的字储存单元并使用指定数据初始化。格式如下:
标号 DCFS/DCFSU 表达式
(6)DCFD/DCFDU 为双精度浮点数分配连续的字储存单元并使用指定数据初始化。格式如下:
标号 DCFD/DCFDU 表达式
(7)SPACE 分配一块连续的存储单元。格式如下:
SPACE 表达式
(8)FIELD 分配一块连续的存储单元。格式如下:
FIELD 字节数
(9)MAP 定义一个结构化的内存
文档评论(0)