- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Chap4 AM程序设计
伪指令 在ARM汇编语言源程序中有些特殊助记符,它们没有相对应的操作码或者机器码,通常称为伪指令,它们所完成的操作称为伪操作 伪指令在源程序中的作用是为完成汇编程序作各种准备工作的,由汇编程序在源程序的汇编期间进行处理,仅在汇编过程中起作用 伪指令 在ARM的汇编程序中,有如下几种伪指令: 符号定义伪指令 数据定义伪指令 汇编控制伪指令 信息报告伪指令 宏指令以及其他伪指令 符号定义伪指令 作用 用于定义ARM汇编程序中的变量、对变量赋值以及定义寄存器的别名等 符号定义有如下几种伪指令 用于定义局部变量的LCLA、LCLL和LCLS 用于定义全局变量的GBLA、GBLL和GBLS 用于对变量赋值的SETA、SETL和SETS 为通用寄存器列表定义名称的RLIST 符号定义伪指令 LCLA、LCLL和LCLS 格式: LCLA/LCLL/LCLS 局部变量名 说明:LCLA、LCLL和LCLS伪指令用于定义一个汇编程序中的局部变量并初始化 其中: LCLA定义一个局部的数字变量,初始化为0。 LCLL定义一个局部的逻辑变量,初始化为F。 LCLS定义一个局部的字符串变量,初始化为空串。 这3条伪指令用于声明局部变量,在其局部作用范围内变量名必须惟一,例如在宏内。 符号定义伪指令 例如: MACRO TEST LCLA num1 ;定义一个局部的数字变量 LCLL l2 ;定义一个局部的逻辑变量,变量名为l2 LCLS str3 ;定义一个局部的字符串变量 num1 SETA 0xabcd ;将该变量赋值为0xabcd l2 SETL {FALSE} ;将该变量赋值为真 str3 SETS Hello! ;将该变量赋值为“Hello!” … MEND 符号定义伪指令 GBLA、GBLL和GBLS 格式: GBLA/GBLL/GBLS 变量名 说明:GBLA、GBLL和GBLS伪操作定义一个汇编程序中的全局变量并初始化。 其中: GBLA定义一个全局数字变量,并初始化为0。 GBLL定义一个全局逻辑变量,并初始化为F。 GBLS定义一个全局字符串变量,并初始化为空串。 这3条伪指令用于定义全局变量,因此在整个程序范围内变量名必须惟一。 符号定义伪指令 符号定义伪指令 符号定义伪指令 例如: LCLA num1 ;定义一个局部的数字 ;变量,变量名为num1 num1 SETA 0x1234 ;将该变量赋值 ;为0x1234 LCLS str3 ;定义一个局部的字符串变 ;量,变量名为str3 str3 SETS “Hello!” ;将该变量赋值为 ;“Hello!” 符号定义伪指令 数据定义伪指令 作用 为数据分配存储单元,同时初始化。 有如下几种 DCB 字节分配 DCW/DCWU 半字(2字节)分配 DCD/DCDU 字(4字节)分配 DCQ/DCQU 8个字节分配 DCFS/DCFSU 单精度浮点数分配 DCFD/DCFDU 双精度浮点数分配 SPACE 分配一块连续的存储单元 FIELD 定义一个结构化的内存表的数据域 MAP 定义一个结构化的内存表首地址 数据定义伪指令 数据定义伪指令 数据定义伪指令 数据定义伪指令 数据定义伪指令 数据定义伪指令 数据定义伪指令 数据定义伪指令 数据定义伪指令 汇编控制伪指令 其它伪指令 其它伪指令 其他伪指令 其他伪指令 其他伪指令 其他伪指令 其他伪指令 其他伪指令 其他伪指令 其他伪指令 其他伪指令 其他伪指令 其他伪指令 其他伪指令 其他伪指令 其他伪指令 其他伪指令 其他伪指令 其他伪指令 其他伪指令 汇编语言程序的结构 汇编语言程序的结构 ARM的汇编语言程序一般由几个段组成,每个段均由AREA伪操作定义。 段可以分为多种,如代码段、数据段、通用段,每个段又有不同的属性,如代码段的默认属性为READONLY,数据段的默认属性为READWRITE。 本程序定义了两个段,第一个段为代码段codesec,它在存储器中存放用于程序执行的代码以及main函数的本地字符串;第二个段为数据段constdatasec,存放了全局的字符串,由于本程序没有对数据进行写操作,该数据段定义属性为READONLY。 汇编语言的行构成 格式: [标签]
文档评论(0)