- 1、本文档共24页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ARM程序设计 广嵌教育 第四章 ARM程序设计 4.1 ARM伪操作 4.2 ARM汇编伪指令 4.3 ARM汇编语言语句格式 4.4 ARM汇编语言程序格式 4.5ARM汇编程序设计 4.6 ARM汇编语言中的子程序调用 4.1 ARM伪操作 伪操作是ARM汇编语言源程序里的一些特殊指令助记 符,作用主要是为完成汇编程序做各种准备工作,在源程 序进行汇编时由汇编程序处理,而不是在程序运行期间由 CPU执行。这些伪操作只在汇编过程中起作用,当汇编结 束,伪指令的使命也就随之结束。 ADS编译环境下的伪操作有如下几种: 符号定义伪操作 数据定义伪操作 汇编控制伪操作 信息报告伪操作 其他伪操作 4.1 ARM伪操作-符号定义伪操作 符号定义伪操作用于定义 ARM 汇编程序中的变量,对变量赋值以及 定义寄存器的别名等操作。 常见的符号定义伪操作有如下几种: 用于定义全局变量的 GBLA 、 GBLL 和 GBLS 。 用于定义局部变量的 LCLA 、 LCLL 和 LCLS 。 用于对变量赋值的 SETA 、 SETL 、 SETS 。 为一个通用寄存器列表定义别名--RLIST 为一个协处理器的寄存器定义名称--CN 为一个协处理器定义名称--CP 为一个双精度的VFP寄存器定义名称--DN 为一个单精度的VFP寄存器定义名称--SN 为一个浮点寄存器定义名称--FN 4.1 ARM伪操作-符号定义伪操作 例: GBLA Test1 ;定义一个全局的数字变量,变量名为 Test1。 Test1 SETA 0xaa ;将该变量赋值为 0xaa。 LCLS Test6 ;定义一个局部的字符串变量,变量名为Test6 。 Test6 SETS “ Testing ” ;将该变量赋值为 “ Testing ”。 GBLL codedbg ;声明一个全局逻辑变量 codedbg SETL{TRUE} ;设置变量为{TRUE} List RLIST {R0-R3} Power CN 6 DSP CP 8 4.1 ARM伪操作-数据定义伪操作 数据定义伪操作一般用于为特定的数据分配存储单元,同时可完成已配 存储单元的初始化。常见的数据定义伪操作有如下几种: DCB 用于分配一片连续的字节存储单元并用指定的数据初始化。 DCW ( DCWU ) 用于分配一片连续的半字存储单元并用指定的数据初始化。 DCD ( DCDU ) 用于分配一片连续的字存储单元并用指定的数据初始化。 DCFD ( DCFDU )用于为双精度的浮点数分配一片连续的字存储单元并用指定的数据初始化。 DCFS ( DCFSU ) 用于为单精度的浮点数分配一片连续的字存储单元并用指定的数据初始化。 DCQ ( DCQU ) 用于分配一片以 8 字节为单位的连续的存储单元并用指定的数据初始化。 SPACE 用于分配一片连续的存储单元,并用0初始化。 MAP 用于定义一个结构化的内存表首地址 ,与FIELD配合使用。 FIELD 用于定义一个结构化的内存表中的数据域 LTORG用于声明一个数据缓冲池(文字池)的开始 4.1 ARM伪操作-数据定义伪操作 例: Str DCB “This is a test!” ;分配一片连续的字节存储单元并初始化。 DataTest DCW 1 ,2 ,3 ;分配一片连续的半字存储单元并初始化。 FDataTest DCFD 2E115 , -5E7 ;分配一片连续的字存储单元并初始 ;化为指定的双精度数。 FDataTest DCFS 2E5 , -5E - 7 ;分配一片连续的字存储单元并初始 化为指定的单精度数。 DataSpace SPACE 100 ;分配连续 100 字节的存储单元并初始化为0 MAP 0x100 , R0 ;定义结构化内存表首地址的值为 0x100 + R0 。 MAP 0x100 ;定义结构化内存表首地址的值为 0x100 。 A FIELD 16 ;定义 A 的长度为 16 字节,位置为 0x100 B FIELD 32 ;定义 B 的长度为 32 字节,位置为 0x110 S FIELD 256 ;定义 S 的长度为 256 字节,位置为 0x130 4.1 ARM伪操作-数据定义伪操作 DCB 也可用 “ = ” 代替 DCD 也可用 “ ” 代替 S
文档评论(0)