资源描述:
《第四章 汇编语言程序设计知识ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第4章汇编语言程序设计知识4.1汇编语言程序设计4.1.1汇编语言及其语句格式1、汇编语言这里介绍MCS-51单片机的汇编语言。2、汇编语言的语句格式一条汇编语言的语句包括四部分内容:标号、操作码、操作数和注释。其格式为:标号:操作码 操作数;注释例如:LOOP:MOVA,#20H;(A)←20H4.1.2伪指令1、定位伪指令格式:ORGn2、定义字节伪指令格式:标号:DBX1,X2,……Xn此伪指令的功能是把Xi存入从标号开始连续的单元中。3、定义字伪指令格式:标号:DWX1,X2,……Xn此伪
2、指令的功能是把Xi存入从标号开始的连续单元中。思考:伪指令的作用?4、预留存贮区伪指令格式:DSnDSn从标号指定单元开始,预留n个单元的存贮区。注:DB,DW,DS伪指令都只对程序存储器起作用,不能对数据存储器进行初始化5、赋值伪指令格式:字符名称EQUn此指令的功能是将数据或地址n赋给字符名称。6、DATA数据地址赋值命令格式:字符名称DATA表达式注:功能与EQU类似,但有区别(1)EQU伪指令可以把一个汇编符号赋给一个名字,而DATA只能把数据赋给字符名(2)用EQU必须先定义后使用,DA
3、TA定义的符号名可以后定义先使用(3)DATA可以把一个表达式的值赋给字符名称,其中的表达式应是可求值的7、结束汇编指令格式:ENDEND指示源程序到结束,常将其放在汇编语言源程序的末尾。8、BIT位地址符号命令格式:符号名BIT位地址4.1.3汇编语言程序设计过程1、分析任务,确定算法或解题思路2、根据算法和解决思路画出程序流程图流程图是由一些框图和流程线组合而成:通过流程图把具有一定功能的各部分有机的联系起来。3、根据流程图编写程序4、上机调试程序4.2汇编程序结构4.2.1顺序结构程序设计按
4、照程序编写的顺序,依次执行。任何复杂的程序,都含有较大成份的顺序结构程序。【例4-1】将两位压缩BCD码转换成二进制数编程思路:(a1a0)BCD=a1×10+a0编程说明:待转换的两位压缩BCD码存放于R2,转换结果存回R2。程序流程图如图4-1所示。编程如下:START:MOVA,R2ANLA,#0F0H;取高位BCD码SWAPAMOVB,#0AHMULABMOVR3,AMOVA,R2ANLA,#0FH;取低位BCD码ADDA,R3MOVR2,AEND4.2.2分支程序设计【例4-2】求符号函
5、数的值1当X>0Y=0当X=0的值。-1当X<0编程说明:设变量X存放在40H单元中,函数Y存放在41H单元中。此程序为三分支程序。程序流程图如图4-2所示。编程如下:START:MOVA,40HJZCOMPJNBACC.7,POSTMOVA,#81H;表示-1SJMPCOMPPOST:MOVA,#01H;表示+1COMP:MOV41H,AEND例4-3使用多条CJNE实现多分支程序转移某温度控制系统,采集的温度值(Ta)放在A中,此外,在内部RAM54h单元存放控制温度的下限值(T54),在55
6、h单元中存放控制温度的上限(T55),若Ta>T55,程序转向JW(降温处理),若Ta7、,外部64KB取数。R3:入口参数(0~3),选择取数存储区。R0:存储器低8位地址。R1:存储器高8位地址。MOVA,R3MOVDPTR,#BRTABMOVCA,@A+DPTRJMP@A+DPTRBRTAB:DBBR0-BRTAB;存放差值DBBR1-BRTABDBBR2-BRTABDBBR3-BRTABBR0:MOVA,@R0SJMPBREBR1:MOVXA,@R0SJMPBREBR2:MOVA,R1ANLA,#0FHANLP2,#0F0HORLP2,AMOVXA,@R0SJMPBREBR3:
8、MOVDPL,R0MOVDPH,R1MOVXA,@DPTRBRE:SJMP$例4-5:使用查表转移指令实现多分支程序设键盘上有3个操作键键值:01功能:读数据键值:02功能:写数据键值:03功能:插入假定键值放在A中……MOVDPTR,#3000HCLRCRLCAJMP@A+DPTR3000H3001H3002HAJMPDS;转到读数据程序3003H3004HAJMPXS;转到写数据程序3005H3006HAJMPCR;转到插入程序例4-6:通过堆栈操作实现多分支转移程序。分支