文档详情

第五章MCS-51系列单片机汇编语言程序设计.ppt.ppt

发布:2017-04-15约3.58千字共28页下载文档
文本预览下载声明
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.循环结构程序设计 循环程序是指一段反复执行的程序。在许
显示全部
相似文档