第8讲(ARM汇编程序设计).pptVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第8讲 汇编程序设计 ARM处理器支持两种语言进行设计: 一种是汇编语言(ARM/Thumb); 汇编语言的机器代码生成效率很高,但可读性却不强,复杂的程序很难读懂。 符号分为两大类: 1、指令助记符: 指令助记符都是预先定义好的,且具备专用的目的和功能。 伪指令大概可分为6种类型: ARM伪指令。 符号定义伪指令; 段及段属性定义伪指令; 数据定义伪指令; 汇编控制伪指令; 杂项伪指令。 符号定义伪指令EQU用于定义ARM汇编程序的常量、标号和变量,对变量进行赋值等操作。 变量的声明与赋值伪指令表: 段定义和段属性定义伪指令如下所列: AREA: 定义一个段开始; END: 汇编结束; ALIGN: 定义边界对齐方式; ENTRY: 定义程序入口; CODE16: 指明本段为16位Thumb代码; CODE32: 指明本段为32位ARM代码。 数据定义伪指令用于数据表定义,文件池定义,数据空间分配等,同时 也可完成已分配存储单元的初始化。 常用的数据定义伪指令: 声明一个文件池:LTORG; 定义一个结构化的内存表的首地址:MAP; 定义结构化内存表中的一个数据域:FIELD; 分配一块内存空间,并用0初始化:SPACE; 分配一段字节的内存单元,并用指定的数据初始化:DCB; 分配一段半字的内存单元,并用指定的数据初始化:DCW; 分配一段字的内存单元,并用指定的数据初始化:DCD; 分配一段双字的内存单元,并用指定的数据初始化:DCQ。 汇编控制伪指令用于条件汇编、宏定义、重复汇编控制等。 * 更多资料下载 * * 《ARM嵌入式应用技术基础》第4章 * * * 宏定义指令格式说明: 标号 是可选项。当宏定义被展开时,可被代替换成相应的符号。 宏名 所定义的宏的名称。宏调用是通过调用宏的名称来实现的。 参数 宏指令的参数。当宏指令被展开时将被替换成相应的值,类似于函数的形式参数。参数是可选项,可以多个。 源享嵌入式教学论坛 出品 主讲人 刘凯 设计语言 一种是高级语言(如C/C++语言)。 高级语言在大多数情况下其机器代码生成效率较差,但可读性和可移植性却比汇编语言强很多,而且还可以嵌入汇编来解决高效性的代码编写问题。 计算20+8,结果放入R0寄存器的例子 AREA Buf,DATA,READWRITE ;声明数据段Buf Count DCB 20 ;定义一个字节单元Count AREA Example,CODE,READONLY ;声明代码段Example ENTRY ;标识程序入口 CODE32 ;声明32位ARM指令 START LDR R0,Count ;R0 = Count = 20 MOV R1,#8 ;R1 = 8 ADD R0,R0,R1 ;R0 = R0 + R1 B START END 汇编程序格式 每一个段都有一个名字,并且段名是唯一的。每个段以符号AREA作为段的开始,碰到下一个符号AREA作为段的结束。 AREA name1,attr 语句1 … 语句n AREA name2,attr 语句n+1 … 语句n+m END 汇编程序格式 1、标号必须在一行的顶格书写,其后面不要加“;”,对于变量的设置,常量的定义,其标识符必须在一行的顶格书写;而所有指令均不能顶格书写; 某一段错误的汇编语言程序 START MOV R0,#1 ABC: MOV R1,#2 MOV R2,#3 LOOP Mov R2,#3 B loop 2、汇编器对标识符大小写敏感,书写标号及指令时字母大小写要一致。 3、注释使用“;”。 程序书写注意事项 2、用户定义符: 用户定义符是由用户在编写汇编程序时自行定义的,只在本程序中有意义,不具备通用性。 语句行的符号 用户定义符有3个用途: 标号、符号常量、变量。 ① 标号 … ;…表示省略的程序 B Start ;程序跳转到Start标号处 … Start ;Start标号,这是一个基于PC的段内标号 … 标号代表一个地址,段内标号的地址在汇编时确定,而段外标号的地址值在链接时确定。 ② 符号常量 T_bit EQU 0x20 ;定义数字常量T_bit,其值为0x20 PLLCON EQU 0xE01FC080 ;定义PLLCON,值为0xE01FC080 用户定义符 ③ 变量名 变量是指存放在存储单元的操作数,并且它的值可

文档评论(0)

经管专家 + 关注
实名认证
服务提供商

初级会计持证人

专注于经营管理类文案的拟写、润色等,本人已有10余年相关工作经验,具有扎实的文案功底,尤善于各种框架类PPT文案,并收集有数百万份各层级、各领域规范类文件。欢迎大家咨询!

版权声明书
用户编号:6055234005000000
领域认证 该用户于2023年12月17日上传了初级会计

1亿VIP精品文档

相关文档