文档介绍:1
第4章汇编语言程序设计
总体要求:
●熟练掌握汇编语言程序设计中常用的伪指令
和程序流程图
●掌握常用汇编语言程序设计的方法
●熟悉顺序、分支、循环结构和子程序调用等
程序的应用特征
●能够独立完成本章作业
学习重点:
●汇编语言程序设计中常用的伪指令
●分支与循环描述的理解与实现
●综合程序设计举例的学习
2
汇编语言的语句结构
汇编语言程序设计
综合程序设计举例
3
汇编语言的语句结构
汇编语言的语句格式
汇编语言源程序由一系列语句组成,一般每个语句占一行。语句的主体通常是各种指令。语句的格式同汇编语言指令格式一样,也是由标号、操作码、操作数和注释这四部分组成。相邻两部分之间都要用分隔符隔开。
汇编语言语句的格式为:
标号:操作码操作数;注释
其中标号和操作码之间用“:”作为分隔符,也可再加上若干空格。操作码和操作数之间用空格作分隔符。注释之前用“;”作为分隔符。
4
指令的符号地址。由字母开头,后跟字母或数字。标号的最大允许长度由汇编程序确定。操作码助记符、寄存器名以及伪指令都不能用作标号。
以下是一些合法标号的例子:
START,DL0,SUM,A1,LOOP等
以下的字符串不能用作标号:
2A,S+M,ADD,EQU
并不是每一条语句都需要加标号。通常对于转移指令涉及的语句和子程序的开始语句等才使用标号。
语句要执行的操作内容,汇编语言语句必有的部分。用指令的助记符表示,操作码与操作数用空格分开。
指令操作所需要的数据。根据操作码的功能,操作数可能是一项或多于一项。当多于一项时,操作数之间用逗号分隔。个别指令不需要操作数,则此项空缺。
操作数可以是立即数或其它的寻址方式。立即数必须以数字开头,若十六进制数以字母开头,则必须在前面加“0”。
5
6
语句的说明部分,以分号“;”开始。当采用机器汇编时,计算机对它不作处理。注释可以同源程序的其它部分一起输出。注释可为一行或几行(每行均以分号开始)。
注释不是每条语句所必需的。但适当的注释使得程序便于阅读。
7
伪指令
当汇编程序对于汇编语言源程序进行汇编时,还要求提供一些有关汇编信息的指令,例如指定程序或数据存放的起始地址、给一些连续存放的数据确定单元等。但是,这类指令在汇编时并不产生目标代码,不影响程序的执行,所以称为伪指令。常用的伪指令有下列几种。
8
1.(Origin)
ORG伪指令出现在每段源程序或数据块的开始。它指明此语句后面的程序或数据块的起始地址。
其格式为: ORG nn
其中nn可用绝对地址或标号表示,在汇编时由nn确定此语句下面第一条指令(或第一个数据)的地址。该段源程序(或数据块)就连续存放在以后的地址内,伪指令为止。例如:
ORG 1000H
START: MOV R0,#50H
MOV A,R4
ADD A,***@R0
9
存储器地址
目标代码
源程序
1000H
78H 50H
MOV R0,#50H
1002H
ECH
MOV A,R4
1003H
26H
ADD A,***@R0
汇编后目标代码在存储器中存放的结果安排如下,起始地址是1000H。
10
(Define Byte)
其格式为:[标号:] DB X1,X2,…,Xi,…,X n
其中X1~X n是单字节数或由EQU伪指令定义的字符,也可以是用引号括起来的ASCII码。此伪指令的功能是把这组数据依次存入由该伪指令指定的地址单元中。例如:
ORG 2000H
DATA1:DB 73H,20H,30H
DB ‘A’
结果安排如下: