指令与汇编语言程序设计dpdg.pptx
《指令与汇编语言程序设计dpdg.pptx》由会员分享,可在线阅读,更多相关《指令与汇编语言程序设计dpdg.pptx(52页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、单片机实用教程单片机实用教程第第第第3 3章章章章 指令与汇编语言指令与汇编语言指令与汇编语言指令与汇编语言 程序设计程序设计程序设计程序设计 本章主要内容本章主要内容本章主要内容本章主要内容 4、算术运算、逻辑运算和交换指令与程序设计、算术运算、逻辑运算和交换指令与程序设计1、程序设计的基本方法与顺序程序设计、程序设计的基本方法与顺序程序设计2、控制转移指令与循环程序、分支程序设计、控制转移指令与循环程序、分支程序设计 3、堆栈及其操作指令、堆栈及其操作指令5、查表指令与查表程序设计、查表指令与查表程序设计单片机实用教程单片机实用教程第第3章章 指令与汇编语言程序设计指令与汇编语言程序设计一
2、、程序设计的步骤一、程序设计的步骤一、程序设计的步骤一、程序设计的步骤 1 1、分分分分析析析析问问问问题题题题,明明明明确确确确所所所所要要要要解解解解决决决决问问问问题题题题的的的的要要要要求求求求,确确确确定算法或解题思路定算法或解题思路定算法或解题思路定算法或解题思路2 2、画流程图、画流程图、画流程图、画流程图起止框起止框 处理框处理框 判断框判断框 输入输入/输出框输出框 流程指向线流程指向线单片机实用教程单片机实用教程第第3章章 指令与汇编语言程序设计指令与汇编语言程序设计3 3、编写源程序画流程图、编写源程序画流程图、编写源程序画流程图、编写源程序画流程图 4 4、汇编和调试、
3、汇编和调试、汇编和调试、汇编和调试程序书写的两种格式:程序书写的两种格式:程序书写的两种格式:程序书写的两种格式:第第第第一一一一种种种种是是是是完完完完整整整整程程程程序序序序格格格格式式式式的的的的形形形形式式式式,即即即即在在在在第第第第二章介绍的程序一般结构二章介绍的程序一般结构二章介绍的程序一般结构二章介绍的程序一般结构 。第二种就是子程序的形式。第二种就是子程序的形式。第二种就是子程序的形式。第二种就是子程序的形式。二、顺序程序设计二、顺序程序设计二、顺序程序设计二、顺序程序设计 顺序程序设计顺序程序设计顺序程序设计顺序程序设计 :又叫直线程序,它是:又叫直线程序,它是:又叫直线程
4、序,它是:又叫直线程序,它是按照指令的顺序依次执行的程序,它也是所按照指令的顺序依次执行的程序,它也是所按照指令的顺序依次执行的程序,它也是所按照指令的顺序依次执行的程序,它也是所有程序设计中最基本、最重要的程序有程序设计中最基本、最重要的程序有程序设计中最基本、最重要的程序有程序设计中最基本、最重要的程序 。单片机实用教程单片机实用教程第第3章章 指令与汇编语言程序设计指令与汇编语言程序设计 例例例例3-1 0153-1 015共十六立即数送到内部共十六立即数送到内部共十六立即数送到内部共十六立即数送到内部RAM 30HRAM 30H开始的开始的开始的开始的单元中。单元中。单元中。单元中。本
5、题题意非常清楚,就是将本题题意非常清楚,就是将本题题意非常清楚,就是将本题题意非常清楚,就是将0 0送到内送到内送到内送到内RAM 30HRAM 30H单元,将单元,将单元,将单元,将1 1送到内送到内送到内送到内RAM 31HRAM 31H单元,以此类推。将立即单元,以此类推。将立即单元,以此类推。将立即单元,以此类推。将立即数送到内部数送到内部数送到内部数送到内部RAMRAM单元有现成的指令,这是一个功能单元有现成的指令,这是一个功能单元有现成的指令,这是一个功能单元有现成的指令,这是一个功能性数据处理,格式上可以写成子程序的形式,程序设性数据处理,格式上可以写成子程序的形式,程序设性数据
6、处理,格式上可以写成子程序的形式,程序设性数据处理,格式上可以写成子程序的形式,程序设计如下:计如下:计如下:计如下:STARTSTART:MOV 30H MOV 30H,#0#0 ;(;(;(;(30H30H)#0#0 MOV 31H MOV 31H,#1#1 ;(;(;(;(31H31H)#1#1 MOV 3FH MOV 3FH,#15#15 ;(;(;(;(3FH3FH)#15#15 RET RET ;返回;返回;返回;返回单片机实用教程单片机实用教程第第3章章 指令与汇编语言程序设计指令与汇编语言程序设计一、循环程序的结构一、循环程序的结构一、循环程序的结构一、循环程序的结构 1 1、
7、循环程序:主要是用来实现功能相同、反复执行、循环程序:主要是用来实现功能相同、反复执行、循环程序:主要是用来实现功能相同、反复执行、循环程序:主要是用来实现功能相同、反复执行的操作。的操作。的操作。的操作。Y图 3-2 循环程序的两种结构 N循环体循环修改 循环初值退出循环 N 循环体循环修改 循环初值退出循环 循环控制 循环控制Y单片机实用教程单片机实用教程第第3章章 指令与汇编语言程序设计指令与汇编语言程序设计 循环程序一般包括四个部分:循环初值、循环循环程序一般包括四个部分:循环初值、循环循环程序一般包括四个部分:循环初值、循环循环程序一般包括四个部分:循环初值、循环体、循环修改和循环控
8、制。体、循环修改和循环控制。体、循环修改和循环控制。体、循环修改和循环控制。循环初值:循环程序开始循环执行的初始条件,如循循环初值:循环程序开始循环执行的初始条件,如循循环初值:循环程序开始循环执行的初始条件,如循循环初值:循环程序开始循环执行的初始条件,如循环的次数等,在循环程序的开始部分,只执行一次。环的次数等,在循环程序的开始部分,只执行一次。环的次数等,在循环程序的开始部分,只执行一次。环的次数等,在循环程序的开始部分,只执行一次。循环体:是循环程序的核心,就是反复要完成的具体循环体:是循环程序的核心,就是反复要完成的具体循环体:是循环程序的核心,就是反复要完成的具体循环体:是循环程序
9、的核心,就是反复要完成的具体操作功能。操作功能。操作功能。操作功能。循环修改:循环体执行一次后,再次执行之前,需要循环修改:循环体执行一次后,再次执行之前,需要循环修改:循环体执行一次后,再次执行之前,需要循环修改:循环体执行一次后,再次执行之前,需要对有关参数进行修改,为下一轮循环做准备,和循对有关参数进行修改,为下一轮循环做准备,和循对有关参数进行修改,为下一轮循环做准备,和循对有关参数进行修改,为下一轮循环做准备,和循环体一样,循环修改的程序内容也是反复多次执行环体一样,循环修改的程序内容也是反复多次执行环体一样,循环修改的程序内容也是反复多次执行环体一样,循环修改的程序内容也是反复多次
10、执行的。的。的。的。循环控制:根据循环预先确定的次数,或者循环过程循环控制:根据循环预先确定的次数,或者循环过程循环控制:根据循环预先确定的次数,或者循环过程循环控制:根据循环预先确定的次数,或者循环过程中有关操作数的内容进行判断,控制循环的结束。中有关操作数的内容进行判断,控制循环的结束。中有关操作数的内容进行判断,控制循环的结束。中有关操作数的内容进行判断,控制循环的结束。单片机实用教程单片机实用教程第第3章章 指令与汇编语言程序设计指令与汇编语言程序设计2 2、加、加、加、加1 1和减和减和减和减1 1指令。指令。指令。指令。(1 1)加)加)加)加1 1指令指令指令指令 1 1)INC
11、 A INC A ;AA+1AA+1 2 2)INC Rn INC Rn ;RnRn+1RnRn+1 3 3)INC direct INC direct ;(;(;(;(directdirect)(directdirect)+1+1 4 4)INC Ri INC Ri ;(;(;(;(RiRi)(RiRi)+1+1 5 5)INC DPTR INC DPTR ;DPTRDPTR+1DPTRDPTR+1(2 2)减)减)减)减1 1指令指令指令指令 1 1)DEC A DEC A ;AA-1AA-1 2 2)DEC Rn DEC Rn ;RnRn-1RnRn-1 3 3)DEC direct D
12、EC direct ;(;(;(;(directdirect)(directdirect)-1-1 4 4)DEC Ri DEC Ri ;(;(;(;(RiRi)(RiRi)-1-1单片机实用教程单片机实用教程第第3章章 指令与汇编语言程序设计指令与汇编语言程序设计3 3、循环程序设计举例、循环程序设计举例、循环程序设计举例、循环程序设计举例 例例例例3-3 0153-3 015共十六个立即数送到内部共十六个立即数送到内部共十六个立即数送到内部共十六个立即数送到内部RAM 30HRAM 30H开开开开始的单元中。始的单元中。始的单元中。始的单元中。MOV R0,#30H MOV A,#0 MO
13、V R0,AMOV R0,#31H MOV A,#1 MOV R0,AMOV R0,#3FH MOV A,#15 MOV R0,AMOV 30H,#0MOV 31H,#1 MOV 3FH,#15单片机实用教程单片机实用教程第第3章章 指令与汇编语言程序设计指令与汇编语言程序设计STARTSTART:MOV R2MOV R2,#16#16 ;循环次数;循环次数;循环次数;循环次数 MOV R0 MOV R0,#30H#30H ;指向第一个单元;指向第一个单元;指向第一个单元;指向第一个单元 ;循环初值;循环初值;循环初值;循环初值 MOV A MOV A,#0#0 ;送的第一个数;送的第一个数;
14、送的第一个数;送的第一个数AAAA:MOV R0 MOV R0,A A ;循环体,完成数据传;循环体,完成数据传;循环体,完成数据传;循环体,完成数据传 ;送循环体循环修改;送循环体循环修改;送循环体循环修改;送循环体循环修改 INC A INC A ;循环修改;循环修改;循环修改;循环修改 INC R0 INC R0 ;修改指向的单元;修改指向的单元;修改指向的单元;修改指向的单元 DJNZ R2 DJNZ R2,AA AA ;循环次数减;循环次数减;循环次数减;循环次数减1 1,到,到,到,到0 0退退退退 ;出循环,循环控制;出循环,循环控制;出循环,循环控制;出循环,循环控制 RET
15、RET ;子程序返回;子程序返回;子程序返回;子程序返回0 0单片机实用教程单片机实用教程第第3章章 指令与汇编语言程序设计指令与汇编语言程序设计二、比较转移指令与循环程序设计二、比较转移指令与循环程序设计二、比较转移指令与循环程序设计二、比较转移指令与循环程序设计 1 1、比较转移指令、比较转移指令、比较转移指令、比较转移指令 (1 1)CJNE ACJNE A,#data#data,rel rel ;PCPC+3PCPC+3,若,若,若,若A=dataA=data,程序顺序执行,程序顺序执行,程序顺序执行,程序顺序执行 ;若;若;若;若A A datadata,PCPC+relPCPC+r
16、el,程序转移,程序转移,程序转移,程序转移,Cy=0Cy=0;若;若;若;若A A datadata,PCPC+relPCPC+rel,程序转移,程序转移,程序转移,程序转移,Cy=1Cy=1;(2 2)CJNE RnCJNE Rn,#data#data,rel ;PCPC+3rel ;PCPC+3,若,若,若,若Rn=dataRn=data,程序顺序执行,程序顺序执行,程序顺序执行,程序顺序执行 ;若;若;若;若RnRn datadata,PCPC+relPCPC+rel,程序转移,程序转移,程序转移,程序转移,Cy=0Cy=0;若;若;若;若RnRn datadata,PCPC+relP
17、CPC+rel,程序转移,程序转移,程序转移,程序转移,Cy=1Cy=1;(3 3)CJNE RiCJNE Ri,#data#data,rel rel ;PCPC+3PCPC+3,若,若,若,若=data=data,程序顺序执行,程序顺序执行,程序顺序执行,程序顺序执行 ;若(;若(;若(;若(RiRi)datadata,PCPC+relPCPC+rel,程序转移,程序转移,程序转移,程序转移,Cy=0Cy=0;若(;若(;若(;若(RiRi)datadata,PCPC+relPCPC+rel,程序转移,程序转移,程序转移,程序转移,Cy=1Cy=1;(4 4)CJNE ACJNE A,dir
18、ectdirect,rel rel ;PCPC+3PCPC+3,若,若,若,若A=A=(directdirect),程序顺序执),程序顺序执),程序顺序执),程序顺序执行;行;行;行;若;若;若;若A A (directdirect),),),),PCPC+relPCPC+rel,程序转移,程序转移,程序转移,程序转移,Cy=0Cy=0;若;若;若;若A A (directdirect),),),),PCPC+relPCPC+rel,程序转移,程序转移,程序转移,程序转移,Cy=1Cy=1;单片机实用教程单片机实用教程第第3章章 指令与汇编语言程序设计指令与汇编语言程序设计2 2比较转移指令应
19、用举例比较转移指令应用举例比较转移指令应用举例比较转移指令应用举例 例例例例3-33-3程序用比较转移指令修改如下:程序用比较转移指令修改如下:程序用比较转移指令修改如下:程序用比较转移指令修改如下:STARTSTART:MOV R0 MOV R0,#30H#30H ;指向第一个单元;指向第一个单元;指向第一个单元;指向第一个单元 MOV A MOV A,#0#0 ;送的第一个数;送的第一个数;送的第一个数;送的第一个数AAAA:MOV R0 MOV R0,A A ;循环体,完成数据传送;循环体,完成数据传送;循环体,完成数据传送;循环体,完成数据传送 INC A INC A ;修改送的数据;
20、修改送的数据;修改送的数据;修改送的数据 INC R0 INC R0 ;修改指向的单元;修改指向的单元;修改指向的单元;修改指向的单元 CJNE A CJNE A,#16#16,AA AA;根据操作数信息控;根据操作数信息控;根据操作数信息控;根据操作数信息控 ;制循环循环控制;制循环循环控制;制循环循环控制;制循环循环控制 RET RET ;子程序返回;子程序返回;子程序返回;子程序返回也可以通过对也可以通过对也可以通过对也可以通过对R0R0中数据判断比较控制程序结束中数据判断比较控制程序结束中数据判断比较控制程序结束中数据判断比较控制程序结束 单片机实用教程单片机实用教程第第3章章 指令与
21、汇编语言程序设计指令与汇编语言程序设计1 1循环移位指令循环移位指令循环移位指令循环移位指令(1 1)循环左移指令)循环左移指令)循环左移指令)循环左移指令 RL A RL A;三、循环移位指令与程序设计三、循环移位指令与程序设计三、循环移位指令与程序设计三、循环移位指令与程序设计 (2)循环右移指令)循环右移指令 RR A;(3)带进位位的循环左移指令)带进位位的循环左移指令 RLC A;(4)带进位位的循环右移指令)带进位位的循环右移指令 RRC A;A7 A0A7 A0A7 A0Cy A7 A0Cy 单片机实用教程单片机实用教程第第3章章 指令与汇编语言程序设计指令与汇编语言程序设计 例
22、例例例3-6 3-6 执行下面的指令,在注释区记录执行下面的指令,在注释区记录执行下面的指令,在注释区记录执行下面的指令,在注释区记录A A中数据的变中数据的变中数据的变中数据的变化。化。化。化。MOV A MOV A,#03H#03H ;A=00000011B=3A=00000011B=3 CLR C CLR C ;Cy=0Cy=0 RLC A RLC A ;A=00000110B=6A=00000110B=6,Cy=0Cy=0 RLC A RLC A ;A=00001100B=12A=00001100B=12,Cy=0Cy=0可以看出左移一次相当于乘可以看出左移一次相当于乘可以看出左移一次
23、相当于乘可以看出左移一次相当于乘2 2;类似右移相当除以;类似右移相当除以;类似右移相当除以;类似右移相当除以2 2。2 2循环移位指令应用循环移位指令应用循环移位指令应用循环移位指令应用单片机实用教程单片机实用教程第第3章章 指令与汇编语言程序设计指令与汇编语言程序设计2 2循环移位指令应用循环移位指令应用循环移位指令应用循环移位指令应用 例例例例3-73-7将第二章的循环流水灯程序修改成循环程序将第二章的循环流水灯程序修改成循环程序将第二章的循环流水灯程序修改成循环程序将第二章的循环流水灯程序修改成循环程序 ORG 0000H ORG 0000H LJMP SETUP LJMP SETUP
24、 ORG 0030H ORG 0030HSETUPSETUP:MOV A MOV A,#0FEH#0FEH ;循环初值;循环初值;循环初值;循环初值MAINMAIN:MOV P1 MOV P1,A A ;点亮灯;点亮灯;点亮灯;点亮灯 LCALL DELAY LCALL DELAY ;调延时子程序;调延时子程序;调延时子程序;调延时子程序 RL A RL A ;循环修改;循环修改;循环修改;循环修改 LJMP MAIN LJMP MAIN ;DELAYDELAY:MOV R6MOV R6,#80H#80H ;延时子程序;延时子程序;延时子程序;延时子程序DEL1DEL1:MOV R7 MOV
25、R7,#0#0DELDEL:DJNZ R7 DJNZ R7,DELDEL DJNZ R6 DJNZ R6,DEL1DEL1 RET RET ;子程序返回;子程序返回;子程序返回;子程序返回 END END单片机实用教程单片机实用教程第第3章章 指令与汇编语言程序设计指令与汇编语言程序设计1 1条件转移指令条件转移指令条件转移指令条件转移指令(1 1)判)判)判)判A A转移指令转移指令转移指令转移指令 JZ rel JZ rel ;PCPC+2PCPC+2,若,若,若,若A=0A=0,则转移,则转移,则转移,则转移,;PCPC+relPCPC+rel ;若;若;若;若A0A0,则顺序执行。,则
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 指令 汇编语言 程序设计 dpdg
限制150内