- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]第4章 单片机汇编
第4章 单片机汇编语言程序设计 第4章 单片机汇编语言程序设计 4.1 概述 4.2 伪指令 4.3汇编语言程序设计方法 4.4汇编语言程序设计举例 4.1 概述 单片机汇编语言程序实际上就是单片机的所支持的能完成指定功能的指令系列。构成汇编语言程序的是汇编语句。 在MCS-51系列单片机汇编语言中汇编语句一般分为两种: 指令性语句(即汇编指令) 指示性语句(即伪指令) 指令性语句在汇编后成为单片机执行的指令码,而指示性语句并不能产生可执行的指令码,它只是在汇编时通知汇编程序如何工作。 4.1.1 汇编的概念 在单片机中,汇编是将单片机的汇编语言助记符指令(汇编程序)翻译成单片机能识别执行的二进制机器指令(目标程序)。 目前汇编一般有两种方法: 手工汇编 机器汇编 手工汇编是用人工查表的方式将汇编程序翻译为目标程序。 汇编程序是一种翻译程序,利用汇编指令与机器码指令的一一对应的关系。将源程序翻译成目标程序 汇编过程 4.1.2 汇编程序 汇编语言程序转换成机器语言的过程称为汇编过程。能实现汇编语言到机器语言的转换的程序称为汇编程序。 汇编时汇编过程可以由汇编程序完成,也可以由人工完成。 因此,汇编可以分为: 手工汇编 机器汇编 (1)手工汇编 手工汇编就是根据指令表,将源程序由汇编指令逐条翻译成机器指令,并把这些机器指令代码以字节为单元从起始地址依次排列成目标程序的过程。 手工汇编一般分两步进行(即两次汇编过程): 第一步:确定各条指令(第一字节)的地址并翻译出各条指令的机器码。 第二步:将第一步未处理的标号进行代替,求出标号所代表的具体地址或地址偏移量,从而形成最终机器代码。 手工汇编举例 (2) 机器汇编 机器汇编是由计算机的汇编软件将汇编语言源程序自动生成机器语言程序,称汇编软件为汇编程序。 机器汇编可在单片机开发系统(如仿真器)上汇编软件实现,称驻留汇编; 在其它计算机(如PC机)上进行,称交叉汇编。 4.2 伪指令 伪指令是单片机中的指示性指令,它主要是汇编时告诉汇编程序,如何汇编源程序的指令。 说明:伪指令不能被汇编成机器代码,也不能被机器执行完成某种操作,因此称为伪指令 (1)、起始地址伪指令 ORG 指令格式:ORG addr16 指令功能:用于规定目标程序段或数据块的在程序存储器中的起始地址,需放置在程序段或数据块的开始处。 例如: ORG 3000H START: MOV A, #30H … … (2)、汇编结束伪指令 END 指令格式:END 或 END 标号 指令功能:汇编时通知汇编程序,对源程序的汇编到此结束。一个程序中只出现一次,在程序的最后出现。 (3)赋值伪指令 EQU 指令格式: 标识符 EQU 数值或汇编符号 指令功能:汇编时告诉汇编程序,将汇编语句操作数的值赋予本语句的标识符。 “标识符”在源程序中可以作数值使用,也可以作数据地址、位地址使用。要使用此标识符必须先定义后使用,且放在程序开头。 注意:标识符后没有冒号,只须一个空格分隔。 例如: DATA EQU 29H MOV A , DATA … … (4)、定义字节伪指令 DB 指令格式: [标号:] DB 字节数据或字节数据表 指令功能:汇编时告诉汇编程序从指定的地址单元开始,定义若干字节存储单元,并将指定的数据或数据表赋予初值。注意:数据表中各字节数据用逗号分隔,如果是字符数据还需要用“”引起来,数据可以是二进制、十六进制和ASCII码;DB指令在汇编语言程序中可以多次使用。 例如: ORG 1000H ADDR: DB 20H DATA: DB 0AFH, “A” , … … 汇编结果是将20H存放于ADDR即1000H地址单元中,将0AFH存放于ADDR+1地址单元,将“A”存放于ADDR+2地址单元;存放于ADDR+3地址单元。 (5)、定义字伪指令 DW 指令格式: [标号:] DW 字数据或字数据表 指令功能:汇编时告诉汇编程序从指定的地址单元开始,定义若干个字存储单元,并将指定的数据或数据表赋予作为初值。其中数据高八位存入低地址;低八位存入高地址。 例如: ORG 1000H DATA1: DW 7654H,40H、12、‘AB ’ (6)、
文档评论(0)