单片微机原理及应用课件第4章汇编语言程序设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

源程序
ORG 1000H START:MOV R0,2FH
MOV R2,#00H MOV A,@R0 MOV R3,A INC R3 SJMP NEXT LOOP:INC R0 CJNE @R0,#44H,NEXT INC R2 NEXT:DJNZ R3,LOOP MOV 2AH,R2 SJMP $
汇编语言及汇编过程
汇编程序功能
源程序 (汇编指令程序)
汇编
目标程序 (机器码指令程序)
汇编指令与机器码指令有一一对应的关系。 汇编程序是一种翻译程序,将源程序翻译成目标序。
汇编程序的汇编过程
汇编有两种方法:手工汇编、机器汇编。
1、手工汇编: 第一次汇编:确定地址,翻译成各条机器码,字符标号 原样写出; 第二次汇编:标号代真,将字符标号用所计算出的具体 地址值或偏移量代换。
用来说明程序段或数据存储区的起始地址。
格式为: ORG 十六位地址
例如程序:
ORG 1000H
START: MOV A,#20H
MOV B,#30H

说明程序从1000H开始存放。在一个源程序 中,可以多次使用ORG指令。但不能重叠。
2.EQU:赋值(或等值指令)
给变量标号赋予一个确定的数值。其值在整个程序 中不改变,且可多次使用。 格式为:标号(字符名称) EQU 数或汇编符号 例如,COUNT EQU 16H ; COUNT=16H
Fra Baidu bibliotek
信息表示方法:
• 二进制(B)
十六进制(H)
• 十进制(D或无字尾)
PC现行值($)
• ASCII码(‘ ’)
指令标号等。
• 为区分数字和字符,凡数字以0~9开头。
• 如:MOV A,#0A4H
• 4、注释段
• 为了便于阅读和交流,对程序进行注释。 汇编时对注释部分不予理会。
4.1.3 伪指令
1.ORG:汇编起始地址
按字的形式把数据存放在存储单元中。其中高字节数 存入低位地址。
格式如下:
[标号:] 例如,
DB 字常数表 ORG 2000H
TAB: DW 7423H, 00ABH, 20 汇编结果:(2000H)=74H (2001H)=23H
(2002H)=00H (2003H)=ABH
(2004H)=00H (2005H)=14H
汇编程序:它是计算机的系统软件之一, 用于将汇编语言源程序翻译成目标程序。
4.1.2 汇编语言的语句结构
1.汇编语言的指令类型 MCS-51 单 片 机 汇 编 语 言 , 包 含 两 类 不 同
性质的指令。 (1)基本指令:即指令系统中的指令。它们都
是机器能够执行的指令,每一条指令都有对 应的机器码。 (2)伪指令:汇编时用于控制汇编的指令。它 们都是机器不执行的指令,无机器码。
标号是以字母开头的1~8个字母或数字串组 成,注意,不能使用指令助记符、伪指令或 寄存器名来作标号,标号不能重复定义。
2、操作码段 操作码指出指令操作的性质或控制要求。该
段可以是指令助记符或伪指令助记符。 3、操作数段
操作数是指令操作码操作的对象,它是参加 操作的数或是操作数据所在的地址。
操作数有三种类型的信息: 立即数、寄存器和地址。
ADDR EQU 3000H ; ADDR=3000H MOV A,COUNT ;A=16H
COUNT赋值后,当作直接地址使用。 ADDR被定 义为十六位地址。 注意:必须先赋值,后使用。
返回本节
3.DB:定义字节数据(Define Byte)
把数据以字节数的形式存放在存储器单元中。常 用于定义数据常数表。
2、机器汇编
两次扫描过程。 第一次扫描:检查语法错误,确定符号名字;
建立使用的全部符号名字表; 每一符号名字后跟一对应值(地址或 数)。 第二次扫描:是在第一次扫描基础上,将符号地址转 换成地址(代真); 利用操作码表将助记符转换成相应的目 标码。
2.汇编语言的语句格式
汇编语言源程序是由汇编语句(即指令) 组成的。汇编语言一般由四部分组成。 其典型的汇编语句格式如下:
示,地址、操作数可用标号、符号地址及字 符等形式来描述。 3.高级语言:高级语言是接近于人的自然语言, 面向过程而独立于机器的通用语言。
返回本节
汇编语言源程序:用汇编语言编写的程序 称为汇编语言源程序,简称源程序。计算机 不能直接识别和执行源程序。
汇编(过程):将汇编语言源程序翻译成 机器码目标程序的过程,称为汇编过程,或 简称为汇编。
标号: 操作码 操作数 ;注释 START: MOV A,30H ;A←(30H) 各段之间必须用定界符隔开。
返回本节
1、标号段
标号是用户给指令语句设定的一个符号, 在汇编产生目标程序时,汇编程序将把标号 所指的指令语句目标码首地址值赋给该标号。 于是,标号便可作为地址或数据在其它语句 的操作数段中引用。
5.DS:定义存储区(Define Store)
从指定的地址单元开始,保留一定数量存储单元。
格式如下:
END
地址 1000 1002 1004 1005 1006 1007 1009 100A 100D 100E 1010 1012
目标程序
第一次汇编
第二次汇编
A82F 7A00 E6 FB 0B 80NEXT 08 B644NEXT 0A DBLOOP 8A2A 80FE
A82F 7A00 E6 FB 0B 8005 08 B64401 0A DBF9 8A2A 80FE
第4章 汇编语言程序设计
4.1 汇编语言基本概念 4.2 汇编语言程序设计
4.1 汇编语言基本概念
4.1.1 程序设计语言 4.1.2 汇编语言的语句结构 4.1.3 伪指令
返回本章首页
4.1.1 程序设计语言
按照语言的结构及其功能可以分为三种: 1.机器语言:机器语言是用二进制代码0和1表
示指令和数据的最原始的程序设计语言。 2.汇编语言:在汇编语言中,指令用助记符表
格式如下:
[标号:] 例如,
DB 字节常数表 ORG 2000H
TAB: DB 14H,26,’A’
DB 0AFH,’BC’ 汇编结果:(2000H)=14H (2001H)=1AH =26
(2002H)=41H (2003H)=AFH
(2004H)=42H (2005H)=43H
4.DW:定义字数据 (Define Word)
相关文档
最新文档