第5章 汇编语言C语言混合编程综述.ppt

  1. 1、本文档共192页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章 汇编语言C语言混合编程综述

1 第5章 汇编语言程序设计 第5章 汇编语言程序设计 5.1汇编语言概述 5.2 伪操作 5.3 分支、循环、子程序 5.4 汇编语言上机环境 5.5 汇编语言C语言混合编程 5.1 汇编语言概述 汇编语言:CPU提供的二进制机器指令的助记符的集合。 汇编编译器:把汇编语言源文件汇编成机器可执行的二进制机器语言。 特点:程序执行速度快,程序代码生成量少。 缺点:不易学习的编程语言,可读性较差,属于低级语言,需要对硬件有深刻的了解。 汇编语言概述 一般用汇编语言编写驱动程序、需要严格计算执行时间的程序以及需要加速执行的程序。 设计汇编程序除了直接使用汇编指令,还需使用伪操作、伪指令等辅助进行程序设计。 伪操作:是一些特殊的指令助记符, 只在汇编过程中起作用,一旦汇编结束,伪操作的使命也就完成,不被汇编成机器代码。 如:数据定义、分配存储区、指示程序结束等。 伪指令:不是真正的机器指令,编译器对源程序进行汇编处理时将被替换成相应的汇编指令。 本章介绍ARM汇编器常用的伪操作、伪指令。 汇编语言概述 汇编语言基本语法: [标号] 操作码 操作数1, 操作数2,… ;注释 标号 :如有必须顶格写, 代表地址,让汇编器来计算程序转移的地址; 操作码:指令|伪操作|伪指令 :前面至少有一个空格; 操作数:可以是变量、常量、指令地址、数据地址,而操作数1通常是本指令的执行结果存储处。 ARM汇编语言程序的每行语句由1~4个部分组成。格式如下: [LABEL] OPERATION [OPERAND] [;COMMENT] 标号域 操作助记符域 操作数域 注释域 (1)标号域(Label) 标号域用来表示指令的地址、变量、过程名、数据的地址和常量。 标号是一个自行设计的标识符或名称,语句标号可以是大小写字母混合,通常以字母开头,由字母、数字、下划线等组成。 语句标号不能与寄存器名、指令助记符、伪指令(操作)助记符、变量名同名。 语句标号必须在一行的开头书写,不能留空格。 汇编语言概述 (2)操作助记符域(OPERATION) 操作助记符域可以为指令、伪操作、宏指令或伪指令的助记符。 ARM汇编器对大小写敏感,在汇编语言程序设计中,每一条指令的助记符可以全部用大写、或全部用小写,但不允许在一条指令中大、小写混用。 所有的指令都不能在行的开头书写,必须在指令的前面有空格,然后再书写指令。 指令助记符和后面的操作数或操作寄存器之间必须有空格,不可以在这之间使用逗号。 伪操作是ARM汇编语言程序里的一些特殊助记符,其作用 主要是为完成汇编程序做的各种准备工作,在源程序进行 汇编时由汇编程序处理,而不是程序运行期间由机器执行。 伪指令是ARM汇编语言程序里的特殊指令助记符,也不在程序运行期间由机器执行。它们在汇编时将被合适的机器指令代替成Thumb指令,从而实现真正的指令操作。 宏指令是一段独立的程序代码,可插在源程序中,它通过伪操作来定义。宏在使用之前必须提前定义好,宏之间可互相调用,也可递归调用。 通过直接书写宏名来使用宏,并根据宏指令的格式设置相应的输入参数。宏定义本身不会产生代码,只是在调用它时把宏体插入到源程序中。调用宏时通过实际的指令来代替宏体实现相关的一段代码。 9 (3)操作数域(OPERAND) 操作数域表示操作的对象,操作数可以是常量、变量、标号、寄存器名或表达式,不同对象之间必须用逗号“,”分开。 立即数用“#”字开头,还可以使用EQU指示字来定义常数。 例: MOV R0, #0x12 ; R0 = 0x12 MOV R1, #’A’ ; R1 = 字母A的ASCII码 NVIC_IRQ0_ENABLE EQU 0x1122;标号顶格写 MOV R1, #NVIC_IRQ0_ENABLE ; 把立即数传送到R1中 (4)注释域(COMMENT) 注释域用来说明语句的功能,以“;”开始。汇编程序对“;”以后的部分不予汇编。 例 1 指令和伪操作书写格式的举例 AREA EX4_3,CODE,READONLY ;前面必须有空格 GBLA DATA ;前面必须有空格 DATA SETA 0x20 ;DATA变量名前面不能留空格 ADD R0,R1,R2 ;全部大写,正确 ADD R0,R1,r2 ;寄存器小写,正

文档评论(0)

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

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

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档