第五章MCS-51系列单片机汇编语言程序设计.ppt.ppt
文本预览下载声明
5.1 MCS-51系列单片机汇编语言语句格式 ;3.操作数项
操作数可以是数字,可以是地址, 。操作数又可分为目的操作数和源操作数两种,二者之间用逗号分开。另外,汇编语言语句中,有的有一个操作数,有的有两个操作数,有的有三个操作数,有的有多个操作数,有的没有操作数,而有的操作数是隐含的。
4.注释
以分号开头,计算机在汇编时对这部分不予处理,是程序员对指令操作的解释,可有可无。 ;5.2 常用伪指令 ;3.定义字节伪指令
格式:标号:DB X1,X2,…,Xi,…Xn
其中标号为可选项,Xi为8位数据或ASCⅡ码。
例如:
ORG 1000H
TAB: DB 01H,02H
则 (1000H)=01H,(1001H)=02H
4.定义双字节伪指令
格式:标号:DW X1,X2,…,Xi,…Xn
其中称号为可选项,Xi为双字节数据。
例如:
ORG 2000H
HETAB: DW 2546H,0178H
则 (2000H)=25H ,(2001H)=46H
(2002H)=01H ,(2003H)=78H ;5.定义空间伪指令
格式:标号:DS 数据或字符表达式
其中标号为可选项。从指定单元开始,由数据或表达式确定保留若干个字节内存空间备用。
例如:
ORG 8000H
BUF:DS 08H
DB 50H,8FH
即:8000H~8007H单元保留备用
(8008H)=50H
(8009H)=8FH
以上DB、DW、DS伪指令只对程序存储器起作用。 ;6.单字节数据赋值伪指令
格式: X EQU n
X为用户定义的符号名,n为常数、工作寄存器或特殊功能寄存器,为单字节数据。
该伪指令将n的值赋给符号名X。X可用于指令中,作为单字节操作数,包括立即数和直接地址direct。
7.双字节数据赋值伪指令
格式:y EQU n
y为用户定义的符号名,n为双字节常数。
该伪指令将n的值赋给符号名y。
y可作为指令中双单字节操作数,或转移指令中的目的地址。
用EQU定义的符号名必须先定义后使用。 ;8.数据地址赋值伪指令
格式:字符名称 DATA 数据或表达式
此命令把一个数据地址或代码地址赋予标号段规定的字符名称。
例如:INDEXJ DATA 6369H
定义了INDEXJ这个字符名称的地址为6369H,主要用于程序的模块式调试。
9.位地址符号命令
格式:字符名称 BIT 位地址
该命令把位地址赋予标号段的字符名称。
例如:A1 BIT P1.0
A2 BIT P1.1;5.3 MCS-51单片机汇编语言
源程序格式及上机过程;5.3.2 MCS-51单片机汇编语言上机过程 ;5.4 MCS-51单片机汇编语言程序设计实例 ;2.评价程序质量的标准;5.4.2 程序设计实例; 【例1】两个1位十进制数相加,结果存于工作寄存器R6、R4中。设两个加数分别在工作寄存器R0和R2中。;2.分支结构程序设计
在实际应用中,不可能所有程序都是直线运行的,相反,多数情况都需要根据不同的条件进行不同的处理,这就会使程序跳转到不同位置去执行,这种结构的程序称为分支结构程序。MCS-51单片机中条件转移指令、比较转移指令、位转移指令等都可实现程序分支。; 【例4】求单字节带符号数的补码。设该单字节数在累加器A中,求出的补码存于寄存器B中。 ; 【例5】单字节十六进制数转换为ASCⅡ码。设被转换的数在B中,转换后的ASCⅡ码放在R7R6中。 ; ORG 2000H
MAIN: MOV A,B ;取被转换数据
SWAP A ;取高4位
ANL A,#OFH
SUBB A,#0AH ;高4位〈0AH吗?
JC L1 ;是,转L1
ADD A,#7 ;否,加7
L1: ADD A,#30H ;加30H
ADD A,#0AH ;原来减掉0AH,再加回来
MOV R7,A ;保存高4位对应的
MOV A,B ;转换低4位
ANL A,#OFH
SUBB A,#0AH
JC L2
ADD A,#7
L2: ADD A,#30H
ADD A,#0AH
MOV R6,A ;保存低4位对应的ASCⅡ码
END ;3.循环结构程序设计
循环程序是指一段反复执行的程序。在许
显示全部