1、一是作为领导干部一定要树立正确的权力观和科学的发展观,权力必须为职工群众谋利益,绝不能为个人或少数人谋取私利第四章第四章 汇编语言程序设计及知识汇编语言程序设计及知识4.1 4.1 编程的步骤、方法和技巧编程的步骤、方法和技巧4.2 4.2 汇编语言源程序的编辑和汇编汇编语言源程序的编辑和汇编/一是作为领导干部一定要树立正确的权力观和科学的发展观,权力必须为职工群众谋利益,绝不能为个人或少数人谋取私利4.1 编程的步骤、方法和技巧4.1.1 4.1.1 编程的步骤编程的步骤4.1.2 4.1.2 编程的方法和技巧编程的方法和技巧4.1.3 4.1.3 汇编语言程序的基本结构汇编语言程序的基本结
2、构/一是作为领导干部一定要树立正确的权力观和科学的发展观,权力必须为职工群众谋利益,绝不能为个人或少数人谋取私利4.1.1 编程的步骤n一、分析问题一、分析问题n二、确定算法二、确定算法n三、画程序流程图三、画程序流程图n四、编写程序四、编写程序/一是作为领导干部一定要树立正确的权力观和科学的发展观,权力必须为职工群众谋利益,绝不能为个人或少数人谋取私利一、分析问题一、分析问题n对需要解决的问题进行分析,以求对问题由正确的对需要解决的问题进行分析,以求对问题由正确的理解。如,理解。如,n解决问题的任务是什么?解决问题的任务是什么?n工作过程?工作过程?n现有的条件,已知数据,对运算的精度和速度
3、方面现有的条件,已知数据,对运算的精度和速度方面的要求?的要求?n设计的硬件结构是否方便编程?设计的硬件结构是否方便编程?/一是作为领导干部一定要树立正确的权力观和科学的发展观,权力必须为职工群众谋利益,绝不能为个人或少数人谋取私利二、确定算法二、确定算法n算法是如何将实际问题转化成程序模块来处理。算法是如何将实际问题转化成程序模块来处理。n在编程以前,先要对几种不同的算法进行分析、比在编程以前,先要对几种不同的算法进行分析、比较,找出最适宜的算法较,找出最适宜的算法/一是作为领导干部一定要树立正确的权力观和科学的发展观,权力必须为职工群众谋利益,绝不能为个人或少数人谋取私利三、画程序流程图三
4、、画程序流程图n程序流程图是使用各种图形、符号、有向线段等来说明程序程序流程图是使用各种图形、符号、有向线段等来说明程序设计过程的一种直观的表示。设计过程的一种直观的表示。n流程图步骤分得越细致,编写程序是也越方便。流程图步骤分得越细致,编写程序是也越方便。n画流程图是程序结构设计是采用的一种重要手段。画流程图是程序结构设计是采用的一种重要手段。n一个系统软件有总的流程图(主程序框图)和局部的流程图。一个系统软件有总的流程图(主程序框图)和局部的流程图。n流程图常采用的图形和符号。流程图常采用的图形和符号。/一是作为领导干部一定要树立正确的权力观和科学的发展观,权力必须为职工群众谋利益,绝不能
5、为个人或少数人谋取私利椭圆框椭圆框或桶形框或桶形框:表示程序的开始或结束。矩形框矩形框:表示要进行的工作。:表示要进行的工作。菱形框菱形框:表示要判断的事情,菱形框内:表示要判断的事情,菱形框内的表达式表示要判断的内容。的表达式表示要判断的内容。圆圈圆圈:表示连接点:表示连接点指向线指向线:表示程序的流向:表示程序的流向/一是作为领导干部一定要树立正确的权力观和科学的发展观,权力必须为职工群众谋利益,绝不能为个人或少数人谋取私利四、编写程序四、编写程序n用用80C51汇编语言编写的源程序行(一条语句)包汇编语言编写的源程序行(一条语句)包括四个部分,也叫四个字段:括四个部分,也叫四个字段:标号
6、:操作码操作数;注释标号:操作码操作数;注释n 每个字段之间要用分隔符分隔,而每个字段内部不能使用分每个字段之间要用分隔符分隔,而每个字段内部不能使用分隔符。可以用作分隔符的符号:空格隔符。可以用作分隔符的符号:空格“ ”、冒号、冒号“:”、逗号逗号“,”、分号、分号“;”等。等。例:例:LOOP:MOV A,#00H;立即数;立即数00HA/一是作为领导干部一定要树立正确的权力观和科学的发展观,权力必须为职工群众谋利益,绝不能为个人或少数人谋取私利标号标号n标号是用户定义的符号地址。标号是用户定义的符号地址。n一条指令的标号是该条指令的符号名字,标号的值是汇编这一条指令的标号是该条指令的符号
7、名字,标号的值是汇编这条指令时指令的地址。条指令时指令的地址。n标号由以英文字母开始的标号由以英文字母开始的18个字母或数字组成,以冒号个字母或数字组成,以冒号“:”结尾。结尾。n标号可以由赋值伪指令赋值,如果没有赋值,汇编程序把存标号可以由赋值伪指令赋值,如果没有赋值,汇编程序把存放该指令目标码第一字节的存储单元的地址赋给该标号,所放该指令目标码第一字节的存储单元的地址赋给该标号,所以,标号又叫指令标号。以,标号又叫指令标号。/一是作为领导干部一定要树立正确的权力观和科学的发展观,权力必须为职工群众谋利益,绝不能为个人或少数人谋取私利操作码操作码n操作码是必不可少的。操作码是必不可少的。n它
8、用一组字母符号表示指令的操作码。在它用一组字母符号表示指令的操作码。在80C51中,中,由由80C51的指令助记符组成。的指令助记符组成。/一是作为领导干部一定要树立正确的权力观和科学的发展观,权力必须为职工群众谋利益,绝不能为个人或少数人谋取私利操作数操作数n汇编语言指令可能要求或不要求操作数,所以这一字段可能有也可能没汇编语言指令可能要求或不要求操作数,所以这一字段可能有也可能没有。有。n若有两个操作数,操作数之间用逗号若有两个操作数,操作数之间用逗号“,”分开。分开。n操作数包括的内容有:操作数包括的内容有:n(1)工作寄存器:由)工作寄存器:由PSW.3和和PSW.4规定的当前工作寄存
9、器区中的规定的当前工作寄存器区中的R0R7。n(2)特殊功能寄存器:)特殊功能寄存器:21个个SFR的名字。的名字。n(3)标号名:赋值标号)标号名:赋值标号由汇编指令由汇编指令EQU等赋值的标号;指令标号等赋值的标号;指令标号指令标号指示的指令的第一字节地址是该标号的值。指令标号指示的指令的第一字节地址是该标号的值。n(4)常数:可用二进制()常数:可用二进制(B)、十进制、十六进制()、十进制、十六进制(H),若常数以字),若常数以字符开头,前面加符开头,前面加0。n(5)$:用来表示程序计数器的当前值。:用来表示程序计数器的当前值。n(6)表达式:汇编时,计算出表达式的值填入目标码。)表
10、达式:汇编时,计算出表达式的值填入目标码。/一是作为领导干部一定要树立正确的权力观和科学的发展观,权力必须为职工群众谋利益,绝不能为个人或少数人谋取私利注释注释n注释部分不是汇编语言的功能部分,只是用语增加注释部分不是汇编语言的功能部分,只是用语增加程序的可读性。程序的可读性。n良好的注释是汇编语言程序编写中的重要组成部分。良好的注释是汇编语言程序编写中的重要组成部分。/一是作为领导干部一定要树立正确的权力观和科学的发展观,权力必须为职工群众谋利益,绝不能为个人或少数人谋取私利4.1.2 编程的方法和技巧一、模块化的程序设计方法一、模块化的程序设计方法二、编程技巧二、编程技巧/一是作为领导干部
11、一定要树立正确的权力观和科学的发展观,权力必须为职工群众谋利益,绝不能为个人或少数人谋取私利一、模块化的程序设计方法一、模块化的程序设计方法1、程序功能模块化的优点、程序功能模块化的优点2、划分模块的原则、划分模块的原则/一是作为领导干部一定要树立正确的权力观和科学的发展观,权力必须为职工群众谋利益,绝不能为个人或少数人谋取私利1、程序功能模块化的优点、程序功能模块化的优点n单个模块结构的程序功能单一,易于编写、调试和修改。单个模块结构的程序功能单一,易于编写、调试和修改。n便于分工,从而可使多个程序员同时进行程序的编写和调试便于分工,从而可使多个程序员同时进行程序的编写和调试工作,加快软件研
12、制进度。工作,加快软件研制进度。n程序可读性好,便于功能扩充和版本升级。程序可读性好,便于功能扩充和版本升级。n对程序的修改可局部进行,其它部分可以保持不变。对程序的修改可局部进行,其它部分可以保持不变。n对于使用频繁的子程序可以建立子程序库,便于多个模块调对于使用频繁的子程序可以建立子程序库,便于多个模块调用。用。/一是作为领导干部一定要树立正确的权力观和科学的发展观,权力必须为职工群众谋利益,绝不能为个人或少数人谋取私利2、划分模块的原则、划分模块的原则n每个模块应具有独立的功能,能产生一个明确的结果,即单每个模块应具有独立的功能,能产生一个明确的结果,即单模块的功能高内聚性。模块的功能高
13、内聚性。n模块之间的控制耦合应尽量简单,数据耦合应尽量少,即模模块之间的控制耦合应尽量简单,数据耦合应尽量少,即模块间的低耦合性。控制耦合是指模块进入和退出的条件及方块间的低耦合性。控制耦合是指模块进入和退出的条件及方式,数据耦合是指模块间的信息交换方式、交换量的多少及式,数据耦合是指模块间的信息交换方式、交换量的多少及交换频繁程度。交换频繁程度。n模块长度适中。模块长度适中。20条条100条的范围较合适。条的范围较合适。/一是作为领导干部一定要树立正确的权力观和科学的发展观,权力必须为职工群众谋利益,绝不能为个人或少数人谋取私利二、编程技巧二、编程技巧1、尽量采用循环结构和子程序。、尽量采用
14、循环结构和子程序。2、尽量少用无条件转移指令。、尽量少用无条件转移指令。3、对于通用的子程序,考虑到其通用性,除了用于存放子程、对于通用的子程序,考虑到其通用性,除了用于存放子程序入口参数的寄存器外,子程序中用到的其他寄存器的内容序入口参数的寄存器外,子程序中用到的其他寄存器的内容应压入堆栈(返回前再弹出),即保护现场。应压入堆栈(返回前再弹出),即保护现场。4、在中断处理程序中,除了要保护处理程序中用到的寄存器、在中断处理程序中,除了要保护处理程序中用到的寄存器外,还要保护标志寄存器。外,还要保护标志寄存器。5、用累加器传递入口参数或返回参数比较方便,在子程序中,、用累加器传递入口参数或返回
15、参数比较方便,在子程序中,一般不必把累加器内容压入堆栈。一般不必把累加器内容压入堆栈。/一是作为领导干部一定要树立正确的权力观和科学的发展观,权力必须为职工群众谋利益,绝不能为个人或少数人谋取私利4.1.3 汇编语言程序的基本结构一、顺序程序一、顺序程序二、分支程序二、分支程序三、循环程序三、循环程序/一是作为领导干部一定要树立正确的权力观和科学的发展观,权力必须为职工群众谋利益,绝不能为个人或少数人谋取私利一、顺序程序一、顺序程序n顺序程序是最简单的程序结构,即顺序结构。顺序程序是最简单的程序结构,即顺序结构。n程序按顺序一条一条地执行指令程序按顺序一条一条地执行指令。例例1:三字节无符号数
16、相加:三字节无符号数相加(50H)(51H)(52H)(50H)(51H)(52H)+(53H)(54H)(55H)/一是作为领导干部一定要树立正确的权力观和科学的发展观,权力必须为职工群众谋利益,绝不能为个人或少数人谋取私利 MOV R0,#52H MOV R1,#55H MOV A,R0 ADD A,R1 MOV R0,A DEC R0 DEC R1 MOV A,R0 ADDC A,R1 MOV R0,A DEC R0 DEC R1 MOV A,R0 ADDC A,R1 MOV R0,A CLR A ADDC A,#00H MOV R0,#20H MOV R0,A把进位结果送到把进位结果送
17、到20H单元单元(50H)(51H)(52H)(50H)(51H)(52H)+(53H)(54H)(55H)/一是作为领导干部一定要树立正确的权力观和科学的发展观,权力必须为职工群众谋利益,绝不能为个人或少数人谋取私利顺序结构顺序结构例例2、字节分解字节分解FJ: MOV A, 30H ANL A, #0FH MOV 50H, A MOV A, 30H ANL A, #0F0H MOV 51H, A RET有问题吗?有问题吗?/一是作为领导干部一定要树立正确的权力观和科学的发展观,权力必须为职工群众谋利益,绝不能为个人或少数人谋取私利二、分支程序二、分支程序n程序分支是通过条件转移指令实现的,
18、即根据条件对程序的程序分支是通过条件转移指令实现的,即根据条件对程序的执行进行判断、满足条件则进行程序转移,不满足条件就顺执行进行判断、满足条件则进行程序转移,不满足条件就顺序执行程序。序执行程序。n分支程序又分为单分支和多分支结构。分支程序又分为单分支和多分支结构。n多分支程序是首先把分支程序按序号排列,然后按序号值进多分支程序是首先把分支程序按序号排列,然后按序号值进行转移。行转移。/一是作为领导干部一定要树立正确的权力观和科学的发展观,权力必须为职工群众谋利益,绝不能为个人或少数人谋取私利二、分支程序二、分支程序n在在MCS-51指令系统中,通过条件判断实现单分支程序转移指令系统中,通过
19、条件判断实现单分支程序转移的指令有:的指令有:JZ、JNZ、CJNE、DJNZ等。此外还有以位状态等。此外还有以位状态作为条件进行程序分支的指令,如作为条件进行程序分支的指令,如JC、JNC、JB、JNB、JBC等。使用这些指令可以完成等。使用这些指令可以完成0、1、正、负,以及相等、正、负,以及相等、不相等作为各种条件判断依据的程序转移。不相等作为各种条件判断依据的程序转移。n结构如图结构如图4-1所示。所示。/一是作为领导干部一定要树立正确的权力观和科学的发展观,权力必须为职工群众谋利益,绝不能为个人或少数人谋取私利图图4-1/一是作为领导干部一定要树立正确的权力观和科学的发展观,权力必须
20、为职工群众谋利益,绝不能为个人或少数人谋取私利START: CLR C MOV DPTA,#ST1 MOVX A,DPTR MOV R2,A INC DPTR MOVX A,DPTR SUBB A,R2 JNC BIG1 XCH A,R2BIG0:INC DPTR MOVX DPTR,A RETBIG1: MOVX A,DPTR SJMP BIG0单分支举例单分支举例:外部:外部RAM中有中有ST1、ST2、ST3共共3个连续单个连续单元,要求从元,要求从ST1、ST2两个单元中找出大数存入两个单元中找出大数存入ST3中。中。(均为无符号数)(均为无符号数)/一是作为领导干部一定要树立正确的权
21、力观和科学的发展观,权力必须为职工群众谋利益,绝不能为个人或少数人谋取私利 CJNE A,55H,LOOP1 AJMP FHLOOP1:JNC JW CJNE A,54H,LOOP2 AJMP FHLOOP2:JC SWFH: RET多重单分支举例多重单分支举例:温度值:温度值Ta在在A中,内部中,内部RAM54H放温度下放温度下限,限,55H放温度上限。根据温度比较,采取放温度上限。根据温度比较,采取JW、SW、FH。/一是作为领导干部一定要树立正确的权力观和科学的发展观,权力必须为职工群众谋利益,绝不能为个人或少数人谋取私利例:例: 128种分支转移程序。种分支转移程序。功能:根据入口条件
22、转移到功能:根据入口条件转移到128个目的地址。个目的地址。入口:(入口:(R3)=转移目的地址的序号转移目的地址的序号00H7FH。出口:转移到相应子程序入口。出口:转移到相应子程序入口。128个子程序首址JMP_128:MOV A,R3 RL A MOV DPTR,#JMPTAB JMP A+DPTRJMPTAB:AJMP ROUT00 AJMP ROUT01 AJMP ROUT7F通过转移指令表实现程序多分支举例通过转移指令表实现程序多分支举例/一是作为领导干部一定要树立正确的权力观和科学的发展观,权力必须为职工群众谋利益,绝不能为个人或少数人谋取私利键盘上有键盘上有3个键个键键值放在键
23、值放在A中中 01执行执行DS 02执行执行XS 03执行执行CR MOV DPTR,#3000H CLR C RLC A JMP A+DPTR3000H 3001H3002H AJMP DS3003H3004H AJMP XS3005H3006H AJMP CR /一是作为领导干部一定要树立正确的权力观和科学的发展观,权力必须为职工群众谋利益,绝不能为个人或少数人谋取私利MOV A,R3MOV DPTR,#brtabMOVC A,A+DPTRJMP A+DPTRBRTAB: DB BR0_BRTAB DB BR1_BRTAB DB BR2_BRTAB DB BR3_BRTABBR0:MOV
24、A,R0 SJMP BREBR1 :MOVX A,R0 SJMP BREBR2: MOV A,R1 ANL A,#0FH ANL P2,#0FH ORL P2,A MOVX A,R0BR3: MOV DPL,R0 MOV DPH,R1 MOVX A,DPTRBRE : SJMP $通过数据表实现程序多分支举例,分支序号放在通过数据表实现程序多分支举例,分支序号放在R3中中/一是作为领导干部一定要树立正确的权力观和科学的发展观,权力必须为职工群众谋利益,绝不能为个人或少数人谋取私利MOV DPTR,#BRTABMOV A,R0RL AMOV R1,AINC AMOVC A,A+DPTRPUSH
25、ACCMOV A,R1MOVC A,A+DPTRPUSH ACCRETBRTAB:DW BR0 DW BR1 DW BR127通过堆栈实现程序多分支举例,分支序号放在通过堆栈实现程序多分支举例,分支序号放在R0中中,分支程分支程序入口地址放在序入口地址放在BRATAB表中表中子程序返回指令子程序返回指令RET、RETI,弹出,弹出断点送给断点送给PC,先,先弹高弹高8位,后弹低位,后弹低8位;位;DW定义数据定义数据字命令:高字命令:高8位在位在前,低前,低8位在后位在后/一是作为领导干部一定要树立正确的权力观和科学的发展观,权力必须为职工群众谋利益,绝不能为个人或少数人谋取私利MOV DPT
26、R,#BSRL AMOV R2,AMOVC A,A+DPTRPUSH ACCMOV A,R2INC AMOVC A,A+DPTRMOV DPH,APOP DPLCLR AJMP A+DPTRBS:DB RK0L DB RK0H DB RK1L DB RK1H DB RK2L DB RK2H 键码放在键码放在A中中键码键码 入口地址入口地址0 RK01 RK12 RK2/一是作为领导干部一定要树立正确的权力观和科学的发展观,权力必须为职工群众谋利益,绝不能为个人或少数人谋取私利三、循环程序三、循环程序n在程序运行时,有时需要连续重复执行某段程序,在程序运行时,有时需要连续重复执行某段程序,可以使
27、用循环程序。其结构包括四部分:可以使用循环程序。其结构包括四部分: 1、置循环初值、置循环初值 2、循环体(循环工作部分)、循环体(循环工作部分) 3、修改控制变量、修改控制变量 4、循环控制部分、循环控制部分/一是作为领导干部一定要树立正确的权力观和科学的发展观,权力必须为职工群众谋利益,绝不能为个人或少数人谋取私利1、置循环初值、置循环初值n对于循环程序中所使用的工作单元,在循环开始时对于循环程序中所使用的工作单元,在循环开始时应置初值。应置初值。n例如,工作寄存器设置计数初值,累加器例如,工作寄存器设置计数初值,累加器A清清0,以,以及设置地址指针、长度等。及设置地址指针、长度等。/一是
28、作为领导干部一定要树立正确的权力观和科学的发展观,权力必须为职工群众谋利益,绝不能为个人或少数人谋取私利2、循环体(循环工作部分)、循环体(循环工作部分)n重复执行的程序段部分,分为循环工作部分和循环重复执行的程序段部分,分为循环工作部分和循环控制部分。控制部分。n循环控制部分每循环一次,检查结束条件,当满足循环控制部分每循环一次,检查结束条件,当满足条件时,就停止循环,往下继续执行其他程序条件时,就停止循环,往下继续执行其他程序/一是作为领导干部一定要树立正确的权力观和科学的发展观,权力必须为职工群众谋利益,绝不能为个人或少数人谋取私利3、修改控制变量、修改控制变量n在循环程序中,不许给出循
29、环结束条件。在循环程序中,不许给出循环结束条件。n常见的是计数循环,当循环了一定的次数后,就停常见的是计数循环,当循环了一定的次数后,就停止循环。止循环。n在单片机中,一般用一个工作寄存器在单片机中,一般用一个工作寄存器Rn作为计数器,作为计数器,对该计数器赋初值作为循环次数。每循环一次,计对该计数器赋初值作为循环次数。每循环一次,计数器的值减数器的值减1,即修改循环控制变量,当计数器的置,即修改循环控制变量,当计数器的置件为件为0时,就停止循环。时,就停止循环。/一是作为领导干部一定要树立正确的权力观和科学的发展观,权力必须为职工群众谋利益,绝不能为个人或少数人谋取私利4、循环控制部分、循环
30、控制部分n根据循环结束条件,判断是否结束循环。根据循环结束条件,判断是否结束循环。n80C51可采用可采用DJNZ指令来自动修改控制变量并能结指令来自动修改控制变量并能结束循环。束循环。/一是作为领导干部一定要树立正确的权力观和科学的发展观,权力必须为职工群众谋利益,绝不能为个人或少数人谋取私利置初值循环体循环修改循环控制退出循环未完完(a)置初值循环体循环修改循环控制退出循环未完完(b)图 循环组织方式流程图/一是作为领导干部一定要树立正确的权力观和科学的发展观,权力必须为职工群众谋利益,绝不能为个人或少数人谋取私利 MOV R2,#0FFH MOV R0,#3FHLOOP:INC R2 I
31、NC R0CJNE R0,#0DH,LOOP RET字符串存放在内部字符串存放在内部RAM从从40H单元开始的连续单元,单元开始的连续单元,以回车符结束。试统计字符串长度。以回车符结束。试统计字符串长度。/一是作为领导干部一定要树立正确的权力观和科学的发展观,权力必须为职工群众谋利益,绝不能为个人或少数人谋取私利把内部把内部RAM起始地址为起始地址为data的数据串传送到外部的数据串传送到外部RAM以以buffer为首的区域,直到发现为首的区域,直到发现“$”字符为止,数据串最大长度字符为止,数据串最大长度32字节字节。 MOV R0,#data MOV DPTR,#buffer MOV R1
32、,#20HLOOP: MOV A,R0 SUBB A,#24H JZ LOOP1 MOVX DPTR,A INC DPTR INC R0 DJNZ R1,LOOPLOOP1:RET(思考本程序有何问题思考本程序有何问题)/一是作为领导干部一定要树立正确的权力观和科学的发展观,权力必须为职工群众谋利益,绝不能为个人或少数人谋取私利不带符号的不带符号的N个单字节数,依次存放在外部个单字节数,依次存放在外部RAM21H开始开始的单元中,求其和放在的单元中,求其和放在R1R2中,中,R1放高字节。放高字节。 MOV R0,#21H MOV R3,#N MOV R1,#00H MOV R2,#00HLO
33、OP:MOVX A,R0 ADD A,R2 MOV R2,A JNC LOOP1 INC R1LOOP1:INC R0 DJNZ R3,LOOP/一是作为领导干部一定要树立正确的权力观和科学的发展观,权力必须为职工群众谋利益,绝不能为个人或少数人谋取私利两个两个N字节数分别存放在内部字节数分别存放在内部RAM中,低字节在前,高在后,中,低字节在前,高在后,R0指定被减数单元地址,指定被减数单元地址,R1指定减数单元地址,差放在被减数单元指定减数单元地址,差放在被减数单元 CLR C MOV R2,#NLOOP:MOV A,R0 SUBB A,R1 MOV R0,A INC R0 INC R1
34、DJNZ R2,LOOP JC QAZ RET/一是作为领导干部一定要树立正确的权力观和科学的发展观,权力必须为职工群众谋利益,绝不能为个人或少数人谋取私利三字节无符号数相加,被加数在内部三字节无符号数相加,被加数在内部RAM20H22H单元,单元,加数在加数在2AH2CH单元单元(低位在前低位在前),和放在被加数单元,和放在被加数单元 MOV R0,#20H MOV R1,#2AH MOV R7,#03H CLR CLOOP:MOV A,R0 ADDC A,R1 MOV R0,A INC R0 INC R1 DJNZ R7,LOOP CLR A ADDC A,#00H MOV R0,A/一是
35、作为领导干部一定要树立正确的权力观和科学的发展观,权力必须为职工群众谋利益,绝不能为个人或少数人谋取私利单循环定时单循环定时 MOV R5,#TIMELOOP:NOP NOP DJNZ R5,LOOP最长定时时间:最长定时时间:25682048us较长时间定时较长时间定时 MOV R5,#TIME1LOOP2:MOV R4,#TIME2LOOP1:NOP NOP DJNZ R4,LOOP1 DJNZ R5,LOOP2 RET最大定时:最大定时:(256421)25624525828us定时程序举例定时程序举例(假设晶振频率(假设晶振频率6MHz)/一是作为领导干部一定要树立正确的权力观和科学的
36、发展观,权力必须为职工群众谋利益,绝不能为个人或少数人谋取私利 MOV R0,#TIMELOOP:ADD A,R1 INC DPTR DJNZ R0,LOOP定时:定时:10TIME(us)若要求定时若要求定时24us,增加增加NOP指令:哑指令指令:哑指令本程序中本程序中ADD、INC均均作为哑指令出现作为哑指令出现n以一个基本延时程序满以一个基本延时程序满足不同的定时要求足不同的定时要求 比如设计一个比如设计一个1s的延时的延时程序进行调用程序进行调用/一是作为领导干部一定要树立正确的权力观和科学的发展观,权力必须为职工群众谋利益,绝不能为个人或少数人谋取私利数据极值查找程序数据极值查找程
37、序 MOV R0,#20H MOV R7,#08H MOV A,R0 DEC R7LOOP:INC R0 MOV 2AH,R0 CJNE A,2AH,CHKCHK: JNC LOOP1 MOV A,R0LOOP1:DJNZ R7,LOOP MOV 2BH,AHERE: AJMP HERE 内部内部RAM20H单元开单元开始存放始存放8个无符号个无符号8位位2进制进制数,找出其中最大数。数,找出其中最大数。 极值查找操作的主要极值查找操作的主要内容就是进行数据大小比内容就是进行数据大小比较。假定在比较过程中,较。假定在比较过程中,A放大数,与之比较的另一放大数,与之比较的另一个数放在个数放在2A
38、H单元中,比单元中,比较结束后,最大数送较结束后,最大数送2BH单元。单元。/一是作为领导干部一定要树立正确的权力观和科学的发展观,权力必须为职工群众谋利益,绝不能为个人或少数人谋取私利四、子程序的设计四、子程序的设计步骤:步骤:1、确定子程序名称,即入口标号。、确定子程序名称,即入口标号。2、确定子程序的输入、确定子程序的输入/输出参数。输出参数。3、确定所用的寄存器和存储单元,以便现场保护。断、确定所用的寄存器和存储单元,以便现场保护。断点保护由指令自动完成。点保护由指令自动完成。4、确定子程序的算法,编写源程序。、确定子程序的算法,编写源程序。举例:多字节举例:多字节BCD数加法。数加法
39、。/一是作为领导干部一定要树立正确的权力观和科学的发展观,权力必须为职工群众谋利益,绝不能为个人或少数人谋取私利子程序:子程序:ADDB: PUSH PSW PUSH ACC CLR CLOOP: MOV A, R0 ADDC A, R1 DA A MOV R0, A INC R0 INC R1 DJNZ R2, LOOP POP ACC POP PSW RET/一是作为领导干部一定要树立正确的权力观和科学的发展观,权力必须为职工群众谋利益,绝不能为个人或少数人谋取私利4字节字节BCD数相加主程序:数相加主程序: MOVR0, #20HMOVR1, #30HMOVR2, #04HLCALLAD
40、DB/一是作为领导干部一定要树立正确的权力观和科学的发展观,权力必须为职工群众谋利益,绝不能为个人或少数人谋取私利五、查表程序五、查表程序 查表用指令查表用指令 MOVC A, A+DPTR MOVC A, A+PCMOV DPTR, #TAB MOVC A, A+DPTR RETTAB: DB 00, 01, 04, 09, 16 DB 25, 36, 49, 64, 81ADD A, #1 MOVC A, A+PC RETTAB: DB 00, 01, 04, 09, 16 DB 25, 36, 49, 64, 81例:用查表法求(例:用查表法求(09)的平方)的平方/一是作为领导干部一定
41、要树立正确的权力观和科学的发展观,权力必须为职工群众谋利益,绝不能为个人或少数人谋取私利4.2 汇编语言源程序的编辑和汇编4.2.1 4.2.1 源程序编辑源程序编辑4.2.2 4.2.2 源程序的汇编源程序的汇编4.2.3 4.2.3 伪指令伪指令/一是作为领导干部一定要树立正确的权力观和科学的发展观,权力必须为职工群众谋利益,绝不能为个人或少数人谋取私利4.2.1 源程序编辑n在微型计算机上,借助编辑软件,编写或修在微型计算机上,借助编辑软件,编写或修改汇编语言源程序。如行编辑或屏幕编辑软改汇编语言源程序。如行编辑或屏幕编辑软件。件。/一是作为领导干部一定要树立正确的权力观和科学的发展观,
42、权力必须为职工群众谋利益,绝不能为个人或少数人谋取私利4.2.2 源程序的汇编n汇编:将汇编语言源程序转换为机器码表示的目汇编:将汇编语言源程序转换为机器码表示的目标程序的过程。对单片机有:标程序的过程。对单片机有: 一、手工汇编一、手工汇编 二、机器汇编二、机器汇编 三、反汇编三、反汇编/一是作为领导干部一定要树立正确的权力观和科学的发展观,权力必须为职工群众谋利益,绝不能为个人或少数人谋取私利一、手工汇编一、手工汇编n通过手工方式查指令编码表,逐个把助记符指令通过手工方式查指令编码表,逐个把助记符指令“翻译翻译”成机器码,然后把得到的机器码程序键入成机器码,然后把得到的机器码程序键入单片机
43、,进行调试和运行。单片机,进行调试和运行。n手工汇编的缺点:手工汇编的缺点: 1、偏移量的计算容易出错、偏移量的计算容易出错 2、程序的修改会引起后面指令地址的变化,转移、程序的修改会引起后面指令地址的变化,转移指令的偏移量也要重新计算。指令的偏移量也要重新计算。/一是作为领导干部一定要树立正确的权力观和科学的发展观,权力必须为职工群众谋利益,绝不能为个人或少数人谋取私利二、机器汇编二、机器汇编n机器汇编是在计算机上使用交叉汇编程序进行源程机器汇编是在计算机上使用交叉汇编程序进行源程序的汇编。汇编工作由机器自动完成,最后得到以序的汇编。汇编工作由机器自动完成,最后得到以机器码表示的目标程序。机
44、器码表示的目标程序。/一是作为领导干部一定要树立正确的权力观和科学的发展观,权力必须为职工群众谋利益,绝不能为个人或少数人谋取私利三、反汇编三、反汇编n将二进制机器语言程序翻译成汇编语言程序的过程将二进制机器语言程序翻译成汇编语言程序的过程称反汇编。称反汇编。n汇编和反汇编的过程如图所示。汇编和反汇编的过程如图所示。/一是作为领导干部一定要树立正确的权力观和科学的发展观,权力必须为职工群众谋利益,绝不能为个人或少数人谋取私利源程序(汇编语言)目标码(机器语言)汇编(汇编程序)反汇编(汇编程序)图 汇编和反汇编过程/一是作为领导干部一定要树立正确的权力观和科学的发展观,权力必须为职工群众谋利益,
45、绝不能为个人或少数人谋取私利4.2.3 伪指令n伪指令不是真正的指令,无对应的机器码,在汇编伪指令不是真正的指令,无对应的机器码,在汇编时不产生目标程序,只是用来对汇编过程进行某种时不产生目标程序,只是用来对汇编过程进行某种控制。控制。/一是作为领导干部一定要树立正确的权力观和科学的发展观,权力必须为职工群众谋利益,绝不能为个人或少数人谋取私利ORG 汇编起始命令汇编起始命令n格式:格式:ORG 16位地址位地址n功能:规定该伪指令后面程序的汇编地址,即汇编后生成目功能:规定该伪指令后面程序的汇编地址,即汇编后生成目标程序存放的起始地址。例如:标程序存放的起始地址。例如: ORG 2000HS
46、TART:MOV A,#64H n规定了规定了START的地址是的地址是2000H,又规定了汇编后的第一条指,又规定了汇编后的第一条指令码从令码从2000H开始存放。开始存放。/一是作为领导干部一定要树立正确的权力观和科学的发展观,权力必须为职工群众谋利益,绝不能为个人或少数人谋取私利END 汇编结束指令汇编结束指令n格式:格式:ENDn功能:通知汇编程序结束汇编。在功能:通知汇编程序结束汇编。在END之后所有的之后所有的汇编指令均不予以处理。汇编指令均不予以处理。/一是作为领导干部一定要树立正确的权力观和科学的发展观,权力必须为职工群众谋利益,绝不能为个人或少数人谋取私利EQU 赋值命令赋值
47、命令n格式:字符名称格式:字符名称 EQU 项(数或汇编符号)项(数或汇编符号)n功能:把功能:把“项项”赋给赋给“字符名称字符名称”。n注意:字符名称不等于标号(其后没有冒号);其中的项,注意:字符名称不等于标号(其后没有冒号);其中的项,可以是数,也可以是汇编符号。可以是数,也可以是汇编符号。EQU赋值过的符号名可以用赋值过的符号名可以用作数据、代码地址、位地址或一个立即数。可以是作数据、代码地址、位地址或一个立即数。可以是8位的,位的,也可以是也可以是16位的。位的。n例如:例如:/一是作为领导干部一定要树立正确的权力观和科学的发展观,权力必须为职工群众谋利益,绝不能为个人或少数人谋取私
48、利EQU 赋值命令赋值命令例例1:AA EQU R1 MOV A,AA;AA代表工作寄存器代表工作寄存器R1例例2: A10 EQU 10DELY EQU 07EBH MOV A,A10;A10作为片内的一个直接地址作为片内的一个直接地址 LCALL DELY;DELY作为一个作为一个16位子程序的入口地位子程序的入口地址址/一是作为领导干部一定要树立正确的权力观和科学的发展观,权力必须为职工群众谋利益,绝不能为个人或少数人谋取私利DATA 数据地址赋值命令数据地址赋值命令n格式:字符名称格式:字符名称 DATA 表达式表达式n功能:与功能:与EQU类似,但有以下差别:类似,但有以下差别:n1
49、、EQU定义的字符名必须先定义后使用,而定义的字符名必须先定义后使用,而DATA定义的字定义的字符名可以后定义先使用。符名可以后定义先使用。n2、用、用EQU伪指令可以把一个汇编符号赋给一个名字,而伪指令可以把一个汇编符号赋给一个名字,而DATA只能把数据赋给字符名。只能把数据赋给字符名。n3、DATA语句可以把一个表达式的值赋给字符名称,其中的语句可以把一个表达式的值赋给字符名称,其中的表达式应是可求值的。表达式应是可求值的。DATA伪指令在程序中用来定义数据伪指令在程序中用来定义数据地址地址/程序如下: NUM DATA 20H STRING DATA 21H CLR A MOV R0,#
50、STRING LOOP: CJNE R0,#24H,NEXT SJMP COMP NEXT: INC A INC R0 SJMP LOOP COMP: MOV NUM,A Back/一是作为领导干部一定要树立正确的权力观和科学的发展观,权力必须为职工群众谋利益,绝不能为个人或少数人谋取私利DB 定义字节命令定义字节命令n格式:格式:DB(项或项表)(项或项表)n功能:通知汇编程序从当前功能:通知汇编程序从当前ROM地址开始,保留一地址开始,保留一个字或字节串的存储单元,并存入个字或字节串的存储单元,并存入DB后的数据。后的数据。n注意:项或项表可以是一个字节,用逗号隔开的字注意:项或项表可以是