资源预览内容
第1页 / 共75页
第2页 / 共75页
第3页 / 共75页
第4页 / 共75页
第5页 / 共75页
第6页 / 共75页
第7页 / 共75页
第8页 / 共75页
第9页 / 共75页
第10页 / 共75页
亲,该文档总共75页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第3章单片机的汇编语言与程序设计单片机的汇编语言与程序设计3.1汇编语言概述3.2MCS-51指令系统简介3.3汇编语言的编程方法第3章单片机的汇编语言与程序设计单片机的汇编语言与程序设计3.1汇编语言概述3.1.1 汇编语言指令格式汇编语言指令格式 3.1.2 描述操作数的简记符号描述操作数的简记符号 3.1.3 寻址方法寻址方法3.2MCS-51指令系统简介3.3汇编语言的编程方法第3章单片机的汇编语言与程序设计单片机的汇编语言与程序设计汇编语言汇编语言(AssemblyLanguage)用助记助记(字字)符符代替操作码,用地址符号代替地址码的一种面向机器的程序设计语言;本章学习目标本章学习目标:了解汇编语言的一般规则,借助指令手册能读懂汇编程序。汇编语言优点汇编语言优点代码精炼、执行速度快,但不便于编写较复杂的程序;汇编程序处理过程汇编程序处理过程输入源程序检查语法正确性(如有语法错误,输出错误信息)翻译成二进制目标程序。一条汇编语言指令中最多包含4个区段,其一般格式为:标号标号: 操作码操作码 操作数操作数 ;注释注释第3章单片机的汇编语言与程序设计单片机的汇编语言与程序设计标号代表当前指令的首字节在存储器单元中的存放地址;标号(标识符)由英文字母开头的16个字符组成,不区分大小写;标号与(英文)冒号可以同时省略。.0122H0123H0124H. xxH xxH xxH 74H 12HROMSTART标号标号: 操作码操作码 操作数操作数 ;注释注释START:MOVA,#12H;机器码7412H例如:标号标号: 操作码操作码 操作数操作数 ;注释注释第3章单片机的汇编语言与程序设计单片机的汇编语言与程序设计操作码是指令的操作动作,由标准助记字符标准助记字符组成;51单片机共有42种操作码,不区分大小写。MOVA,#12H; move(传送)SETBP1.0;set bit(置位)CJNEA,R0,START;compareandjumpifnotequal(比较跳转)举例:标号标号: 操作码操作码 操作数操作数 ;注释注释第3章单片机的汇编语言与程序设计单片机的汇编语言与程序设计操作数是指令要操作的对象,不区分大小写;操作数可以是3个、2个、1个或没有操作数;操作数大于1时,要用(英文)逗号隔开。CJNEA,R0,START;若AR0,转STARTADDA,#10H;A+10HACLRA;A0RET;子程序返回举例:标号标号: 操作码操作码 操作数操作数 ;注释注释第3章单片机的汇编语言与程序设计单片机的汇编语言与程序设计注释是对指令的解释或说明,用以提高程序的可读性;注释可用任何文字或字符描述,不会形成机器码;注释和(英文)分号可以同时省略。MOVA,#12H;立即数12HASETBP1.0;P1.01CJNEA,R0,START;若AR0,转START举例:第3章单片机的汇编语言与程序设计单片机的汇编语言与程序设计汇编语言中标示符标示符/十六进制地址十六进制地址/立即数立即数的区别方法:标示符标示符由英文字母开头的16个字符组成。例如EAH,或C6A16进制地址进制地址最高位的数值9时,应加前缀“0”。例如0EAH,或5AH立即数立即数立即寻址指令中给出的数,应加前缀“#”。例如#0EAH,或#5AH第3章单片机的汇编语言与程序设计单片机的汇编语言与程序设计3.1汇编语言概述3.1.1 汇编语言指令格式汇编语言指令格式 3.1.2 描述操作数的简记符号描述操作数的简记符号 3.1.3 寻址方法寻址方法3.2MCS-51指令系统简介3.3汇编语言的编程方法指令手册中,每条指令的操作数操作数却是以简记符号简记符号表示的。第3章单片机的汇编语言与程序设计单片机的汇编语言与程序设计掌握简记符号简记符号规则便于阅读源程序(查指令手册)真实指令中一般都含有具体的操作数,例如:MOVA,R3或MOVA,#35H第3章单片机的汇编语言与程序设计单片机的汇编语言与程序设计序号序号 简记符号简记符号 简记符号的意义简记符号的意义第3章单片机的汇编语言与程序设计单片机的汇编语言与程序设计简记符号的使用练习具体实例具体实例#dataADDA,R5#data16MOVDPTR,#1305RnMOVA, #35HSUBBA,R0RidirectACALL3FFHaddr16LJMP12A0Haddr11MOVA,25HJCSTARTrelbitCLR20H简记符号简记符号简记符号表简记符号表MOVA,PSWdirectSJMP10HrelADDA,RnMOVDPTR,#data16MOVA, #dataSUBBA,RiACALLaddr11LJMPaddr16MOVA,directJCrelCLRbitMOVA,directSJMPrel指令助记符格式指令助记符格式第3章单片机的汇编语言与程序设计单片机的汇编语言与程序设计3.1汇编语言概述3.1.1 汇编语言指令格式汇编语言指令格式 3.1.2 描述操作数的简记符号描述操作数的简记符号 3.1.3 寻址方法寻址方法3.2MCS-51指令系统简介3.3汇编语言的编程方法第3章单片机的汇编语言与程序设计单片机的汇编语言与程序设计寻址方式是对操作数存在规律的归纳,一条指令究竟属于哪种寻址方式往往并不重要,也不会影响它的使用,因而不必过意追究。51单片机共有7种寻址方式:直接寻址、寄存器寻址、寄存器间接寻址寄存器间接寻址、立即寻址、变址寻址变址寻址、位寻址、相对寻址相对寻址。寻址方式越多,单片机的功能就越强;汇编指令中操作数的存在形式操作数的存在形式,称为寻址方式寻址方式,即CPU取得操作数的方式。第3章单片机的汇编语言与程序设计单片机的汇编语言与程序设计(1)直接寻址)直接寻址MOVA,44H;指令原形MOVA,direct例如:例如:以片内RAM字节地址或SFR名称的形式(direct)表示操作数的存在方式MOVA,P1;等价于MOVA,90H(2)寄存器寻址)寄存器寻址第3章单片机的汇编语言与程序设计单片机的汇编语言与程序设计以通用寄存器名通用寄存器名的形式表示操作数的存在方式通用寄存器通用寄存器:A、B、C、Rn、DPTR例如: MOVA,R1 ;指令原形MOVA,Rn(3)寄存器间接寻址)寄存器间接寻址第3章单片机的汇编语言与程序设计单片机的汇编语言与程序设计间址寄存器间址寄存器:Ri和DPTRMOVA,R0;指令原形MOVA,Ri A(Rn)例如:以+间址寄存器名间址寄存器名的形式表示操作数的存在方式第3章单片机的汇编语言与程序设计单片机的汇编语言与程序设计MOVA, #44H;指令原形MOVA,#data(4)立即寻址)立即寻址以立即数的形式(#data或或#data16)表示操作数的存在方式例如:第3章单片机的汇编语言与程序设计单片机的汇编语言与程序设计(5)变址寻址)变址寻址MOVCA, A+DPTR;A(A+DPTR)例如:以A+变址寄存器变址寄存器的形式表示操作数的存在方式A存放偏移量,偏移量,DPTR或PC为变址寄存器。变址寄存器。MOVCA,A+PCMOVCA,A+DPTRJMPA,A+DPTR仅有3条变址寻址指令第3章单片机的汇编语言与程序设计单片机的汇编语言与程序设计MOVC,2FH;指令原形MOVC,bitSETB0E0H ;指令原形SETBbitCLR P1.0 ;指令原形CLRbit(6)位寻址)位寻址具有位地址的单元具有位地址的单元:低128字节RAM中的可位寻址区(位地址07FH);SFR中可位寻址的单元(位地址80HFFH)例如:以位地址的形式(bit)表示操作数的存在方式绝对位地址绝对位地址,如累加器A第4位的位地址为0E4H相对位地址(字节地址加位位置)相对位地址(字节地址加位位置),如20H.5相对位地址(相对位地址(SFR名加位位置)名加位位置),如P1.0位名称位名称,如C是PSW中的D7位的位名称第3章单片机的汇编语言与程序设计单片机的汇编语言与程序设计(7)相对寻址)相对寻址以偏移量的形式(rel)表示操作数的存在方式;rel的取值范围为:-128+127相对寻址主要用于实现条件转移条件转移功能例如:SJMP 54H;指令原形SJMPrel例如:例如:第3章单片机的汇编语言与程序设计单片机的汇编语言与程序设计51单片机寻址方式小结单片机寻址方式小结寻址方式寻址方式指令中操作数的存在形式直接寻址:direct(片内RAM低128字节地址或SFR名)寄存器寻址:A、B、C、Rn、DPTR(通用寄存器)寄存器间接寻址:Ri、DPTR(Ri和DPTR为间址寄存器)立即寻址:#data、#data16变址寻址:A+DPTR、A+PC(DPTR和PC为变址寄存器)位寻址:bit(绝对位地址或相对位地址)相对寻址:rel(rel取值范围-128+127)第3章单片机的汇编语言与程序设计单片机的汇编语言与程序设计3.1汇编语言概述3.2MCS-51指令系统简介3.2.1 数据传送与交换类指令数据传送与交换类指令 3.2.2 算术运算类指令算术运算类指令 3.2.3 逻辑运算及移位类指令逻辑运算及移位类指令 3.2.4 控制转移类指令控制转移类指令 3.2.5 伪指令伪指令3.3汇编语言的编程方法指令系统指令系统计算机中全部指令的集合。51单片机共有111条指令,按功能可划分为四大类:第3章单片机的汇编语言与程序设计单片机的汇编语言与程序设计数据传送与交换类(31条)算术运算类(24条)逻辑运算类(34条)转移控制类(22条)(位操作也可作为第五类考虑)以实现以实现RAM、SFR和和ROM之间的数据互传或交换为目的。之间的数据互传或交换为目的。第3章单片机的汇编语言与程序设计单片机的汇编语言与程序设计数据传送与交换类指令数据传送与交换类指令 (31条)第3章单片机的汇编语言与程序设计单片机的汇编语言与程序设计数据传送类指令的基本通式为: , 表示将源单元源单元(src)的内容传送给目的单元目的单元(dest),传送后源单元中内容不变。transfer(传送指令操作码的一般形式)的三种具体形式:第3章单片机的汇编语言与程序设计单片机的汇编语言与程序设计MOV数据在片内片内RAM范围内传送MOVX数据在A与片外与片外RAM之间传送MOVC数据在A与与ROM之间传送第3章单片机的汇编语言与程序设计单片机的汇编语言与程序设计单向箭头表示只能从源源到目的目的双向箭头表示源源和目的目的可以互换位置弧线箭头表示源源和目的目的相同(唯一操作数)ROM第3章单片机的汇编语言与程序设计单片机的汇编语言与程序设计传送类指令中的两类特殊指令交换类使操作数的内容互换内容互换(XCH、XCHD、SWAP)0-3堆栈类使操作数的内容进出堆栈内容进出堆栈(PUSH、POP)例3.1:已知内部RAM44H单元为07H,试分析并指出以下程序运行后,21H单元的结果如何?MOVR0,#44HMOVA,R0MOV21H,A;MOVRn,#data;MOVA,Ri;MOVdirect,ARndataA(Ri)directAR0#44HA#07H21H#07H以Ri或DPTR(间址寄存器)表示操作数的方式寄存器间接寻址第3章单片机的汇编语言与程序设计单片机的汇编语言与程序设计属于寄存器间接寻址方式的传送类指令第3章单片机的汇编语言与程序设计单片机的汇编语言与程序设计例3.2:已知片内RAM38H单元中的数为12H,试分析如下程序段并指出其功能注意:片内RAM38H单元中数不能直接传送到外部RAM的1818H单元,必须经过累加器A的转传。功能功能:将片内RAM38H单元中的#12H送到片外RAM的1818H单元中。MOVR0,#38HMOVDPTR,#1818HMOVA,R0MOVXDPTR,A;Rn#data;DPTR#data16;A(Ri);(DPTR)AR0#38HDPTR#1818HA38H(#12H)1818HA(#12H)能否直接将(DPTR)(R0),即MOVXDPTR,R0第3章单片机的汇编语言与程序设计单片机的汇编语言与程序设计例3.3:已知ROM2040H内容为27H,试分析如下程序段并指出其功能。MOVDPTR,#2010HMOVA,#30HMOVCA,A+DPTRMOV30H,A功能功能:将ROM2040H地址中的数取出送到片内RAM的30H单元中。以A+变址寄存器变址寄存器表示操作数的方式变址寻址变址寄存器:变址寄存器:DPTR或PCA中为偏移量偏移量;30HA(#27H);DPTR#2010H;A2040H(#27H);A#30H第3章单片机的汇编语言与程序设计单片机的汇编语言与程序设计例3.4:已知片内RAM70H中存有一个09范围内的整数,试分析如下程序段并指出其功能是什么。功能功能:把整数09转换成相应的ASCII码MOVR0,#70HMOVA,#30HXCHDA,R0MOVR0,A;R0#70H;A#30H;交换低4位;结果送回70H第3章单片机的汇编语言与程序设计单片机的汇编语言与程序设计3.1汇编语言概述3.2MCS-51指令系统简介3.2.1 数据传送与交换类指令数据传送与交换类指令 3.2.2 算术运算类指令算术运算类指令 3.2.3 逻辑运算及移位类指令逻辑运算及移位类指令 3.2.4 控制转移类指令控制转移类指令 3.2.5 伪指令伪指令3.3汇编语言的编程方法第3章单片机的汇编语言与程序设计单片机的汇编语言与程序设计算术运算类指令算术运算类指令以实现加、减、乘、除和增减以实现加、减、乘、除和增减1等运算为目的。等运算为目的。(24条)第3章单片机的汇编语言与程序设计单片机的汇编语言与程序设计特点特点:除加1和减1外,都需以累加器A为目的操作数;一般都会影响PSW中的CY、AC、OV、P四个标志位。AC第3章单片机的汇编语言与程序设计单片机的汇编语言与程序设计例3.5:试解读如下程序并说明其功能MOVA,#34HADDA,#0E7HMOV40H,AMOVA,#12HADDCA,#0FHMOV41H,A;A#34H;A#34H+#0E7H;40HA;A#12H;A#12H+#0FH+C;41HAA#1BH,C#140H#1BH功能功能:实现两个16位数(#1234H与#0FE7H)的加法运算,并将结果#221BH存入片内RAM41H和40H单元。做法做法:先对低8位相加,结果存入40H单元;再对高8位带进位相加,结果存入片内RAM41H单元中。A#22H,C#041H#22H第3章单片机的汇编语言与程序设计单片机的汇编语言与程序设计例3.6:试解读如下程序并说明其功能CLRCMOV A,#34HSUBB A,#0E7HMOV 40H,AMOV A,#12HSUBB A,#0FHMOV 41H,A;CY位清零;A#34H;A#34H-#0E7H-C;40HA;A#12H;A#12H-#0FH-C;41HAA#4D,C#140H#4D功能功能:实现两个16位数(#1234H与#0FE7H)的减法运算,并将结果#24DH存入片内RAM41H和40H单元。做法做法:先清理CY位,然后对低8位带借位相减,结果存入40H单元;再对高8位带借位相减,结果存入41H单元。A#02H,C#041H#02H第3章单片机的汇编语言与程序设计单片机的汇编语言与程序设计例3.7:试解读如下程序并说明其功能MOVA,#17HMOVB,#68HMULABMOV30H,AMOV31H,B;A#17H;B#68H;ABBA;30HA;31HBB#9;A#58H30H#58H31H#09H功能功能:实现两个8位数(17H与68H)的乘法运算,并将乘积958H的高8位和低8位分别存入片内RAM31H和30H单元。第3章单片机的汇编语言与程序设计单片机的汇编语言与程序设计3.1汇编语言概述3.2MCS-51指令系统简介3.2.1 数据传送与交换类指令数据传送与交换类指令 3.2.2 算术运算类指令算术运算类指令 3.2.3 逻辑运算及移位类指令逻辑运算及移位类指令 3.2.4 控制转移类指令控制转移类指令 3.2.5 伪指令伪指令3.3汇编语言的编程方法第3章单片机的汇编语言与程序设计单片机的汇编语言与程序设计逻辑运算及移位类指令逻辑运算及移位类指令进行与、或、异或、求反、置进行与、或、异或、求反、置1、清、清0、移位等操作。、移位等操作。(34条)第3章单片机的汇编语言与程序设计单片机的汇编语言与程序设计特点特点:字节运算以A为目的操作数(#data与direct的运算除外),位运算以C为目的操作数。CLRCPLCLRSETB第3章单片机的汇编语言与程序设计单片机的汇编语言与程序设计例3.8:试解读如下程序并说明其功能。ANLA,#0FHANLP1,#0F0HORLP1,A功能功能:把累加器A的低4位送入P1口的低4位,而P1口的高4位保持不变(实现了一次数据组合);AA00001111B;P1P111110000B;P1P1A逻辑或的特性逻辑或的特性:x0=x(屏蔽屏蔽);x1=1(置位置位)A#0000xxxxBP1#XXXX0000BP1#XXXXxxxxB逻辑与的特性逻辑与的特性:x0=0(清零清零);x1=x(屏蔽屏蔽)第3章单片机的汇编语言与程序设计单片机的汇编语言与程序设计例3.9:试解读如下程序并说明其功能。MOV A,40HCPLAINCAMOV 40H,A功能功能:对片内RAM40H单元中的数取反加1(求补运算),结果仍送回40H单元。;A40H;A/A;AA+1;40HACLR CRLC A MOV R0,A CLR CRLC A ADD A,R0例3.10:试解读如下程序并说明其功能。;C0;乘2;暂存;C0;乘4;相当于乘6功能功能:利用移位指令实现累加器A的内容乘6。第3章单片机的汇编语言与程序设计单片机的汇编语言与程序设计3.1汇编语言概述3.2MCS-51指令系统简介3.2.1 数据传送与交换类指令数据传送与交换类指令 3.2.2 算术运算类指令算术运算类指令 3.2.3 逻辑运算及移位类指令逻辑运算及移位类指令 3.2.4 控制转移类指令控制转移类指令 3.2.5 伪指令伪指令3.3汇编语言的编程方法第3章单片机的汇编语言与程序设计单片机的汇编语言与程序设计控制转移类指令控制转移类指令改变程序计数器改变程序计数器PC值,进而改变程序的运行流向值,进而改变程序的运行流向。(22条)第3章单片机的汇编语言与程序设计单片机的汇编语言与程序设计第3章单片机的汇编语言与程序设计单片机的汇编语言与程序设计功能功能:根据转移地址修改PC当前值;转移地址转移地址:LJMP16位;AJMP11位;SJMP8位;JMP16位特点特点:前三项都可用语句标号代替具体地址;第四项为变址寻址转移指令PCA+DPTR无条件转移第3章单片机的汇编语言与程序设计单片机的汇编语言与程序设计功能功能:根据转移地址(rel)修改PC当前值;特点特点:rel值为-128127,可用语句标号标号代替;以偏移量形式(rel)表示操作数的存在方式相对相对寻址方式寻址方式条件转移第3章单片机的汇编语言与程序设计单片机的汇编语言与程序设计功能功能:可根据A中的数实现分支程序的跳转。例3.11:设A中为整数0n,B中为整数3。试解读如下程序并说明其功能(提示,LJMP为3字节指令)。A放大B倍(跳转指令字长)DPTR过渡跳转块地址PC定位于过渡跳转地址PC定位于实际跳转地址同上同上MULABMOVDPTR,#BLOCKJMPA+DPTRBLOCK: LJMPLOOP0LJMPLOOP1LJMPLOOP2LOOP0:LOOP1:;A=0,3,6,9.,3n;DPTR=BLOCK;PC3n+BLOCK;PCLOOP0;PCLOOP1;PCLOOP2;0号任务入口;1号任务入口3+BLOCK:6+BLOCK:3n+BLOCK:例3.11仿真程序第3章单片机的汇编语言与程序设计单片机的汇编语言与程序设计MOVA,30H CJNEA,40H,NOEQUSETB7FHSJMPFINISHNOEQU:JCSMALLMOV50H,AMOV51H,40HSJMPFINISHSMALL:MOV50H,40HMOV51H,AFINISH:SJMP$例3.12:以下程序可实现比较跳转功能:比较30H和40H中两个无符号数的大小,将大数存入50H,小数存入51H,若两数相等则使7FH位置1。试分析这一功能的实现过程。思路思路:先判断对比双方是否相等,再利用C判断不相等时的关系。A(direct)?CY=1是A(direct)?否PCPC+rel顺序执行下条指令否是;A30H;若A40H,转NOEQU;7FH位#1;PCPCFINISH;若CY=1,则PCPCSMALL;50HA;51H40H;PCPCFINISH;50H40H;51HA;PC=PC当前例3.12仿真程序第3章单片机的汇编语言与程序设计单片机的汇编语言与程序设计例13:试解读如下程序并说明其功能。CLRAMOV R0,#10HMOV 50H,#20HLAB: MOV R0,AINC AINCR0DJNZ 50H,LAB功能功能:将立即数01FH依次写入片内RAM10H开始的32个单元中。Rn0?是PCPC+rel顺序执行下条指令RnRn-1;累加器A清0;数据块指针R0赋初值;循环计数器50H赋初值;将A值写入数据块;A值加1刷新;数据块指针加1刷新;若循环未结束,转LAB继续;若循环结束,执行此行例3.13仿真程序第3章单片机的汇编语言与程序设计单片机的汇编语言与程序设计总延时量:(2s125+1s+2s)200+1s=50.601ms例3.14:试分析如下延时子程序延时子程序可实现的延时量DEL50:MOVR7,#200DEL1: MOVR6,#125DEL2:DJNZR6,DEL2DJNZR7,DEL1RET;循环125次;循环200次ACALLDEL50;调用延时子程序使用使用:已知晶振为12MHz时,指令DJNZ耗时为2s,指令MOV为1s子程序名用语句标号表示;返回语句第3章单片机的汇编语言与程序设计单片机的汇编语言与程序设计3.1汇编语言概述3.2MCS-51指令系统简介3.2.1 数据传送与交换类指令数据传送与交换类指令 3.2.2 算术运算类指令算术运算类指令 3.2.3 逻辑运算及移位类指令逻辑运算及移位类指令 3.2.4 控制转移类指令控制转移类指令 3.2.5 伪指令伪指令3.3汇编语言的编程方法3.2.5.伪指令伪指令第3章单片机的汇编语言与程序设计单片机的汇编语言与程序设计汇编语言指令的两类指令:硬指令硬指令(指令性语句)汇编后可以产生机器码的指令,如前介绍的111条指令;伪指令伪指令(指示性语句)用于对汇编过程提供必要信息的指令,汇编后不会产生机器码常用的伪指令:ORG、END、EQU、DATA、BIT、DB第3章单片机的汇编语言与程序设计单片机的汇编语言与程序设计MCS-51常用伪指令伪指令名称格式功能描述ORG(Oringin)程序起始地址ORG16位地址用于定义汇编程序或数据在ROM中存放的起始地址EQU(Equate)等值指令标识符EQU数或汇编符号用于将一个数值或汇编符号赋给该标示符DATA(Data)数据地址赋值标识符DATA内存字节地址用于将一个内部RAM的地址赋给该标示符BIT(Bit)位地址赋值标识符DATA位地址或位名称用于将一个位地址或位名称赋给该标示符DB(DefineByte)定义字节标号:DB用于把项或项表中的字节(8位)数值依次存入标号开始的存储单元中END(End)结束汇编END用于指示汇编源程序段结束(1)ORG(=origin)格式:ORGnn(16位地址)功能:用于定义汇编程序或数据在ROM中存放的起始地址举例:ORG100HSTART:MOVA,R4MOVB,A:ORG后面第1条指令的首地址为100H,即START的值为100H。(2)EQU(=equate)格式:标示符标示符EQU数值或汇编符号数值或汇编符号功能:用于将一个数值或汇编符号赋给该标示符举例:ADDREQU2000H;将2000H赋予ADDRADDREQUMEM2;将MEM2赋予ADDR说明说明:第2条语句的汇编符号MEM2必须是已赋值过的(3)DATA(=data)格式:标示符标示符DATA 内部内部RAM地址或表达式地址或表达式功能:用于将一个内部RAM的地址赋给该标示符举例:COUNTDATA50H;将50H赋予COUNTEQU与与DATA区别区别:1)EQU须先定义后使用,而DATA可无须如此。2)EQU可用于汇编符号,而DATA不能。3)DATA可用于表达式,而EQU不行。(4)BIT(=bit)格式:标示符标示符BIT位地址或位名称位地址或位名称功能:用于将一个位地址或位名称赋给该标示符举例:KEY1BITP1.0;将P1.0赋予KEY1(5)DB(=definebyte)格式:标号标号: DBn1,n2,ni功能:用于定义以字节为单位以字节为单位的常数表规则:”ni”按顺序存在标号地址开始的单元中;常数之间用逗号分开,最后一个不要逗号例如:JPH:DB12H,20H,35H,40H,58H表示字节常数12H将放置在JPH语句标号对应的ROM地址处,其它常数依此顺延排列(6)END(=end)格式:END功能:用于表示汇编程序到此结束说明:放在源程序的最后一行,并只允许有一个END第3章单片机的汇编语言与程序设计单片机的汇编语言与程序设计例3.16:利用伪指令修改后的查表程序(参见例3.3)说明如图所示伪指令没有机器码源程序始于100H数据块始于120H表格常数依次排列程序到此结束只需修改定义无需改动程序第3章单片机的汇编语言与程序设计单片机的汇编语言与程序设计3.1汇编语言概述3.2指令系统简介3.3汇编语言的编程方法第3章单片机的汇编语言与程序设计单片机的汇编语言与程序设计汇编语言程序的开发过程汇编语言程序的开发过程确定编程思路画程序流程图编写汇编程序程序编译调试用汇编语言进行程序设计的过程和用高级语言进行程序设计的过程类似,一般需要经过以下几个步骤:第3章单片机的汇编语言与程序设计单片机的汇编语言与程序设计流程图(程序框图)表示程序的执行过程或解题步骤和方法给出程序的结构,体现整体与部分之间的关系便于阅读、理解程序,查找错误起始例3.17在单片机P1口外接8个发光二极管(低电平驱动)。试编写一汇编程序,实现LED循环点亮功能,要求采用软件延时方式控制闪烁时间间隔(约50ms)。第3章单片机的汇编语言与程序设计单片机的汇编语言与程序设计第3章单片机的汇编语言与程序设计单片机的汇编语言与程序设计 工作原理分析工作原理分析单片机P1口外接8只LED;循环改写P1.n口,写0灯亮,写1灯灭;软件延时控制切换间隔。画程序流程图画程序流程图:尽可能详细地表示出每一相关环节的内容第3章单片机的汇编语言与程序设计单片机的汇编语言与程序设计RLACALLDJNZRR(01111111B)(11111110B)RnMOVP1P1P1A#1111 1110B第3章单片机的汇编语言与程序设计单片机的汇编语言与程序设计编写汇编程序编写汇编程序第3章单片机的汇编语言与程序设计单片机的汇编语言与程序设计程序编译调试程序编译调试编译通过!机器码及在ROM中的存放第3章单片机的汇编语言与程序设计单片机的汇编语言与程序设计实际运行效果:本章小结本章小结51单片机汇编语言指令最多包含4个区段,其一般格式为:标号:操作码操作数;注释;51单片机的指令系统分为数据传送与交换指令、算术运算指令、逻辑运算指令和控制转移指令等4大类型,共111条;51单片机汇编语言具有直接寻址、寄存器寻址、寄存器间接寻址、立即寻址、变址寻址、位寻址和相对寻址等7种寻址方式。伪指令属于非执行指令,用于对汇编过程提供必要辅助信息,汇编后不会产生机器码。第3章单片机的汇编语言与程序设计单片机的汇编语言与程序设计
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号