- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
嵌入式课件.
第七章 ARM汇编程序设计 ⑤使用说明,如果用这些伪操作重新声明已经声明过的变量,则变量的值 将被初始化成后一次声明语句中的值。 ⑥程序示例: 1使用伪操作声明局部变量。 LCLA Test4 ;声明一个局部的数字变量,变量名为Test4 Test4 SETA 0xaa ;将该变量赋值为0xaa LCLL Test5 ;声明一个局部的逻辑变量,变量名为Test5 Test5 SETL {TRUE} ;将该变量赋值为真 LCLS Test6 ;定义一个局部的字符串变量,变量名为Test6 Test6 SETS “Testing” ;将该变量赋值为”Testing” 2下面的例子定义一个宏,显示了局部变量的作用范围。 MACRO ;声明一个宏 $label message $a ;宏原型 LCLS err ;声明局部字符串变量 $label INFO 0,”err”:CC::STR:$A MEND ;宏结束,局部变量不再起作用 第七章 ARM汇编程序设计 (3)变量赋值伪操作SETA、SETL、SETS ①语法格式: 伪指令SETA、SETL、SETS用于给一个已经定义的全局变量或局部变量 赋值。 ▇ SETA伪操作用于给一个数学变量赋值。 ▇ SETL伪操作用于给一个逻辑变量赋值。 ▇ SETS伪操作用于给一个字符串变量赋值。 语法格式如下: Variable setx expr 其中Variable变量名为已经定义过的全局变量或局部变量,表达式为 将要赋给变量的值。setx取值为SETA、SETL、SETS三者中的之一。Expr 为数学、逻辑或字符串表达式,也就是将要赋予变量的值。 第七章 ARM汇编程序设计 ②使用说明,在向变量赋值前必须先声明变量。也可以在汇编指令中预定 义变量,如:“Armasm –pd “objectsize SETA 0xff”—o objectfile sourcefile” ③程序示例: 为预先定义的变量赋值 LCLA Test3 Test3 SETA 0xaa LCLL Test4 Test4 SETL {TRUE} LCLS Test6 Test6 SETS “Testing” 第七章 ARM汇编程序设计 7.1.2 数据定义伪操作 数据定义伪操作一般用于为特定的数据分配存储单元,同时可完成 已分配单元的初始化。常见的数据定义伪操作有如下几种。 (1)DCB用于分配一片连续的字节存储单元并用指定的数据初始化。 (2)DCW(DCWU)用于分配一片连续的半字存储单元并用指定的数据初始 化。 (3)DCD(DCDU)用于分配一片连续的字存储单元并用指定的数据初始 化。 (4)DCFD(DCFDU)用于为双精度的浮点数分配一片连续的字存储单元 并用指定的数据初始化 (5)DCFS(DCFSU)用于为单精度的浮点数分配一片连续的字存储单元并 用指定的数据初始化 (6)DCQ(DCQU)用于分配一片以8字节为单位的连续的存储单元并用指定 的数据初始化。 第七章 ARM汇编程序设计 (7)SPACE用于分配一片连续的存储单元 (8)MAP用于定义一个结构化的内存表首地址 (9)FIELD用于定义一个结构化的内存表的数据域 (10)LTORG用于声明一个数据缓冲池的开始 1、DCB (1)语法格式: DCB伪操作用于分配一片连续的字节存储单元并用伪指令中指定的表 达式初始化。其中,表达式可以为数字或字符串。DCB也可用“=”代替。 语法格式如下: {label} DCB expr{,expr} 其中{label}是程序标号;expr可以是-128~255的数字,也可以是字 符串。 (2)使用说明:在使用DCB伪操作时,其后常跟ALIGN伪操作以保证内存 地址对齐。 第七章 ARM汇编程序设计 (3)程序示例 ①分配一片连续的字节存储单元并初始化为指定字符串。 Str DCB “This is a test!” ②与C中的字符串不同,ARM汇编中的字符串不以null结尾,下面指令以 ARM汇编形成一个C语言风格的字符串。 C_string DCB “C_string”,0 2、DCW(DCWU) (1)语法格式 DCW(或DCWU)伪操作用于分配一片连续的半字存储单元并用伪指令中 指定的表达式初始化。其中,表达式可以为程序标号或数字表达式。用 DCW分配的字存储单元是半字对齐的,而用DCWU分配的字存储单元并不严 半字对齐。 语法格式:{l
文档评论(0)