- 1、本文档共109页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一、汇编语言 (一)汇编语句的种类 指令语句(硬指令)每一指令汇编后对应一个目标代码对应一种机器操作。 伪指令语句(伪指令)为汇编语言服务的语句。 宏指令语句(宏指令)用以代替源程序中重复使用的程序段的一种语句。 (二) 汇编语言的语句格式 语句行由四个字段组成 : [标号:]操作符 [操作数1] [,操作数2] [;注释] 括号内的部分可以根据实际情况取舍。每个字段之间要用分隔符分隔,可以用作分隔符的符号有空格、冒号、逗号、分号等。 如:LOOP:MOV A,# 7FH ;A←7FH 1、标号 标号是所对应指令在ROM中地址的符号别称,用于引导对该语句的非顺序访问。有关标号的规定为: 标号由1~8个ASCII字符组成。第一个字符必须是字 母或“_”,其余字符可以是字母、数字或其他特定字符“_” ; 不能使用该汇编语言已经定义了的符号作为标号。如指令助记符、寄存器符号名称等; 标号后边必须跟冒号。 2、操作符 操作码用于规定语句执行的操作。它是汇编语句中唯一不能空缺的部分。它由指令助记符表示。 3、操作数 操作数用于给指令的操作提供数据或地址。在一条汇编语句中操作数可能是空缺的,也可能包括一项,还可能包括两项或三项。各操作数间以逗号分隔。操作数字段的内容可能包括以下几种情况: (1)工作寄存器名; (2)特殊功能寄存器名; (3)标号名; (4)常数; (5)符号“$”,表示(PC本); (6)表达式。 4、注释 注释不属于汇编语句的功能部分,它只是对语句的说明。注释字段可以增加程序的可读性,有助于编程人员的阅读和维护。注释字段必须以分号“;”开头,长度不限,当一行书写不下时,可以换行接着书写,但换行时应注意在开头使用分号“;”。 5、数据的表示形式 80C51汇编语言的数据可以有以下几种表示形式: 二进制数,末尾以字母 B 标识。如:1000 1111B; 八进制数,末尾以字母 Q 标识。如:10Q; 十进制数,末尾以字母 D 标识或将字母D省略。如:88D,66; 十六进制数,末尾以字母 H 标识。如:78H,0A8H(但应注意的是,十六进制数以字母A~F开头时应在其前面加上数字“0”。); ASCII码,以单引号括起来标识。如:‘AB’,‘1245’ 1、源程序的编辑 源程序的编写要依据80C51汇编语言的基本规则,特别要用好常用的汇编命令(即伪指令),例如下面的程序段: ORG 0040H MOV A,#7FH MOV R1,#44H END 这里的ORG和END是两条伪指令,其作用是告诉汇编程序此汇编源程序的起止位置。编辑好的源程序应以“ . ASM”扩展名存盘,以备汇编程序调用。 2、源程序的汇编 将汇编语言源程序转换为单片机能执行的机器码形式的目标程序的过程叫汇编。常用的方法有两种: 手工汇编时,把程序用助记符指令写出后,通过手工方式查指令编码表,逐个把助记符指令翻译成机器码,然后把得到的机器码程序(以十六进制形式)键入到单片机开发机中,并进行调试。 机器汇编是在常用的个人计算机PC上,使用汇编程序将汇编语言源程序转换为机器码形式的目标程序。汇编工作由计算机完成,生成的目标程序由PC机传送到开发机上,经调试无误后,再固化到单片机的程序存储器ROM中。 源程序经过机器汇编后,形成的若干文件中含有两个主要文件,一是列表文件,另一个是目标码文件。因汇编软件的不同,文件的格式及信息会有一些不同。但主要信息如下: 列表文件主要信息为: 地 址 目标码 汇编程序 ORG 0040H 0040H 747F MOV A,#7FH 0042H 7944 MOV R1,#44H END 目标码文件主要信息为: 首地址 末地址 目标码 0040H 0044H 747F7944 伪指令是汇编程序能够识别并对汇编过程进行某种控制的汇编命令。它不是单片机执行的指令,所以没有对应的可执行机器码,汇编后产生的目标程序中不会再出现伪指令。 1、起始地址设定伪指令 ORG 格式为: ORG 表达式 该指令的功能是向汇编程序说明下面紧接的程序段或数据段存放的起始地址。表达式通常为16进制地址,也可以是已定义的标号地址。 ORG 8000H START:MOV A,#30H … …
文档评论(0)