(嵌入式系统技术与设计)第3章ARM汇编语言程序设计1.ppt

(嵌入式系统技术与设计)第3章ARM汇编语言程序设计1.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ARM嵌入式体系结构与接口技术 第3章 ARM汇编语言程序设计 第1章 嵌入式系统概述 第2章 ARM体系结构与指令集 第3章 ARM汇编语言程序设计 第4章 嵌入式软件基础 第5章 ARM应用系统设计 第6章 S3C2410系统接口操作原理及实验 3.1 ARM汇编器支持的伪操作 3.2 ARM汇编器支持的伪指令 3.3 ARM 汇编语言的语句格式 3.4 ARM 汇编语言的程序结构 3.5 汇编语言与C语言的混合编程 3.6 小结 3.7 思考与练习 3.1.1 伪操作概述 在ARM汇编语言程序中,有一些特殊指令助记符,这些助记符与指令系统的助记符不同,没有相对应的操作码,通常称这些特殊指令助记符为伪操作标识符(directive)[1],它们所完成的操作称为伪操作。伪操作在源程序中的作用是为了完成汇编程序做各种准备工作的,这些伪操作仅在汇编过程中起作用,一旦汇编结束,伪操作的使命就完成。 在ARM的汇编程序中,伪操作主要有符号定义伪操作、数据定义伪操作、汇编控制伪操作及其杂项伪操作等。 3.1.2 符号定义伪操作 符号定义伪操作用于定义ARM汇编程序中的变量、对变量赋值及定义寄存器的别名等操作。常见的符号定义伪操作有如下几种。 (1)用于定义全局变量的GBLA、GBLL和GBLS。 (2)用于定义局部变量的LCLA、LCLL和LCLS。 (3)用于对变量赋值的SETA、SETL和SETS。 (4)为通用寄存器列表定义名称的RLIST。 3.1.2 符号定义伪操作 1.全局变量定义伪操作GBLA、GBLL和GBLS (1)语法格式 GBLA、GBLL和GBLS伪操作用于定义一个ARM程序中的全局变量并将其初始化。其中: ① GBLA伪操作用于定义一个全局的数字变量并初始化为0。 ② GBLL伪操作用于定义一个全局的逻辑变量并初始化为F(假)。 ③ GBLS伪操作用于定义一个全局的字符串变量并初始化为空。 由于以上3条伪指令用于定义全局变量,因此在整个程序范围内变量名必须唯一。 语法格式如下: gblx variable ① gblx 取值为GBLA、GBLL、GBLS三者中的之一 ② variable 定义的全局变量名,在其作用范围内必须唯一。全局变量的作用范围为包含该变量的源程序 全局变量定义伪操作GBLA、GBLL和GBLS (2)使用说明,如果用这些伪操作重新声明已经声明过的变量,变量的值将被初始化成后一次声明语句中的值。 (3)示例 ① 使用伪操作声明全局变量。 GBLA Test1 ;定义一个全局的数字变量,变量名为Test1 Test1 SETA 0xaa ;将该变量赋值为0xaa GBLL Test2 ;定义一个全局的逻辑变量,变量名为Test2 Test2 SETL {TRUE} ;将该变量赋值为真 GBLS Test3 ;定义一个全局的字符串变量,变量名为Test3 Test3 SETS Testing ;将该变量赋值为“Testing” ② 声明变量Objectsize并设置其值为0xff,为“SPACE”操作做准备。 GBLA objectsize Objectsize SETA oxff SPACE objectsize ③ 下面的例子显示如何使用汇编命令设置变量的值。具体做法是使用“?pd”选项 Armasm ?pd objectsize SETA oxff ?o objectfile sourcefile 3.1.2 符号定义伪操作 2.局部变量定义伪操作LCLA、LCLL和LCLS (1)语法格式 LCLA、LCLL和LCLS伪指令用于定义一个ARM程序中的局部变量并将其初始化。其中: ① LCLA伪操作用于定义一个局部的数字变量并初始化为0。 ② LCLL伪操作用于定义一个局部的逻辑变量并初始化为F(假) ③ LCLS伪操作用于定义一个局部的字符串变量并初始化为空。 以上3条伪操作用于声明局部变量,在其作用范围内变量名必须唯一。 语法格式如下: lclx variable ① LClx 取值为LCLA、LCLL、LCLS三者中的之一。 ② variable 所定义的局部变量名,在其作用范围内必须唯一。局部变量作用范围为包含该局部变量的宏。 局部变量定义伪操作LCLA、LCLL和LCLS (2)使用说明,如果用这些伪操作重新声明已经声明过的变量,则变量的值将被初始化成后一次声明语句中的值。 (3)示例 ① 使用伪操作声明局部变量。

文档评论(0)

autohhh + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档