第3章 单片机汇编程序设计.ppt
《第3章 单片机汇编程序设计.ppt》由会员分享,可在线阅读,更多相关《第3章 单片机汇编程序设计.ppt(156页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第3 3章章 单片机汇编程序设计单片机汇编程序设计第第3章章 单片机汇编程序设计单片机汇编程序设计3.1MCS-51系列单片机汇编指令格式及标识系列单片机汇编指令格式及标识指令指令是使计算机完成基本操作的命令。一种计算机是使计算机完成基本操作的命令。一种计算机能够执行的全部指令的集合,称为这种计算机的指令系能够执行的全部指令的集合,称为这种计算机的指令系统。单片机的指令系统与微型计算机的指令系统不同,统。单片机的指令系统与微型计算机的指令系统不同,MCS-51系列单片机指令系统共有:系列单片机指令系统共有:111条指令;条指令;42种指令助记符。种指令助记符。49条条1字节指令;字节指令;4
2、5条条2字节指令;字节指令;17条条3字节指令。字节指令。64条为条为1机器周期指令;机器周期指令;45条为条为2机器周期指令;机器周期指令;2条为条为4机器周期指令机器周期指令(乘、除法乘、除法)。这些指令在存储空间和运算速度上,效率都比较高。这些指令在存储空间和运算速度上,效率都比较高。第第3 3章章 单片机汇编程序设计单片机汇编程序设计MCS-51系列单片机指令系统功能强、系列单片机指令系统功能强、指令短、执行快。指令短、执行快。从功能上可分成五大类:从功能上可分成五大类:u1、数据传送指令;、数据传送指令;u2、算术运算指令;、算术运算指令;u3、逻辑操作指令;、逻辑操作指令;u4、控
3、制转移指令;、控制转移指令;u5、位操作指令。、位操作指令。第第3 3章章 单片机汇编程序设计单片机汇编程序设计标号:标号:操作码助记符操作码助记符 目的操作数目的操作数,源操作数,源操作数;注释;注释Ll:MOVR0,2FH;循环次数循环次数操作数可分为无操作数、单操作数、双操作数和操作数可分为无操作数、单操作数、双操作数和三操作数四种情况。三操作数四种情况。3.1.1指令格式指令格式第第3 3章章 单片机汇编程序设计单片机汇编程序设计3.1.1指令格式指令格式标号标号:操作码助记符操作码助记符目的操作数目的操作数,源操作数源操作数;注释注释(1)操作码助记符操作码助记符表明指令的功能,不同
4、的指令有不同表明指令的功能,不同的指令有不同的指令助记符,它一般用说明其功能的英文单词的缩写的指令助记符,它一般用说明其功能的英文单词的缩写形式表示。形式表示。(2)操作数操作数用于给指令的操作提供用于给指令的操作提供数据数据、数据的地址数据的地址或或指令的地址指令的地址,操作数往往用相应的寻址方式指明。,操作数往往用相应的寻址方式指明。MCS-51单片机指令系统的指令按操作数的多少可分为无操作数、单片机指令系统的指令按操作数的多少可分为无操作数、单操作数、双操作数和三操作数四种情况。单操作数、双操作数和三操作数四种情况。第第3 3章章 单片机汇编程序设计单片机汇编程序设计(3)标号标号是该指
5、令的符号地址,后面须带冒号。它主要是该指令的符号地址,后面须带冒号。它主要为转移指令提供转移的为转移指令提供转移的目的地址目的地址。(4)注释注释是对该指令的解释,是对该指令的解释,前面须带分号前面须带分号。它们是。它们是编程者根据需要加上去的,用于对指令进行说明,对于编程者根据需要加上去的,用于对指令进行说明,对于指令本身功能而言是可以不要的。指令本身功能而言是可以不要的。标号标号:操作码助记符操作码助记符目的操作数目的操作数,源操作数源操作数;注释注释第第3 3章章 单片机汇编程序设计单片机汇编程序设计(1)Ri和和Rn:表示当前工作寄存器区中的工作寄存器。:表示当前工作寄存器区中的工作寄
6、存器。i取取0或或1,表示,表示R0或或R1。n取取07,表示,表示R0R7。(2)#data:表示包含在指令中的:表示包含在指令中的8位立即数。位立即数。(3)#data16:表示包含在指令中的:表示包含在指令中的16位立即数。位立即数。(4)rel:以补码形式表示的:以补码形式表示的8位相对偏移量,范围为位相对偏移量,范围为-128+127,主要用在相对寻址的指令中。主要用在相对寻址的指令中。(5)addr16和和addr11:分别表示:分别表示16位直接地址和位直接地址和11位直接地址。位直接地址。(6)direct:表示直接寻址的地址。:表示直接寻址的地址。(7)bit:表示可位寻址的
7、直接位地址。:表示可位寻址的直接位地址。(8)(X):表示:表示X单元中的内容。单元中的内容。(9)(X):表示以:表示以X单元的内容为地址的存储器单元内容,即单元的内容为地址的存储器单元内容,即(X)作地址,该地址单元的内容用作地址,该地址单元的内容用(X)表示。表示。(10)/和和符号:符号:“/”表示对该位操作数取反,但不影响该位的表示对该位操作数取反,但不影响该位的原值。原值。“”表示操作流程,将箭尾一方的内容送入箭头所指一方的表示操作流程,将箭尾一方的内容送入箭头所指一方的单元中去。单元中去。3.1.2指令中用到的标识符指令中用到的标识符为便于后面的学习,在这里先对指令中用到的一些符
8、号的约为便于后面的学习,在这里先对指令中用到的一些符号的约定意义作以下说明:定意义作以下说明:第第3 3章章 单片机汇编程序设计单片机汇编程序设计3.2MCS-51系列单片机寻址方式系列单片机寻址方式MCS-51单片机的寻址方式按操作数的类型,可分为:单片机的寻址方式按操作数的类型,可分为:u数的寻址;数的寻址;u指令寻址。指令寻址。数的寻址有:数的寻址有:l常数寻址(立即寻址);常数寻址(立即寻址);l寄存器数寻址(寄存器寻址);寄存器数寻址(寄存器寻址);l存储器数寻址:存储器数寻址:直接寻址方式;直接寻址方式;寄存器间接寻址方式;寄存器间接寻址方式;变址寻址方式。变址寻址方式。l位寻址。
9、位寻址。指令的寻址有:指令的寻址有:l绝对寻址;绝对寻址;l相对寻址。相对寻址。第第3 3章章 单片机汇编程序设计单片机汇编程序设计3.2.1常数寻址(立即寻址)常数寻址(立即寻址)操作数是常数,使用时直接出现在指令中,紧跟在操作数是常数,使用时直接出现在指令中,紧跟在操作码的后面,作为指令的一部分。与操作码一起存放操作码的后面,作为指令的一部分。与操作码一起存放在程序存储器中,可以立即得到并执行,不需要经过别在程序存储器中,可以立即得到并执行,不需要经过别的途径去寻找。常数又称为立即数,故又称为立即寻址。的途径去寻找。常数又称为立即数,故又称为立即寻址。在汇编指令中,立即数前面以在汇编指令中
10、,立即数前面以“#”符号作前缀。符号作前缀。在程序在程序中通常用于给寄存器或存储器单元赋初值中通常用于给寄存器或存储器单元赋初值,例如:,例如:MOVA,#20H其功能是把立即数其功能是把立即数20H送给累加器送给累加器A,其中源操作数,其中源操作数20H就是立即数。指令执行后累加器就是立即数。指令执行后累加器A中的内容为中的内容为20H。第第3 3章章 单片机汇编程序设计单片机汇编程序设计数的寻址方式数的寻址方式寻找操作数存放单元的地址的方式,寻找操作数存放单元的地址的方式,共共6种方式。种方式。3.2.1 常数寻址(立即寻址)常数寻址(立即寻址)所要找的操作数是一个二进制数或十进制数,出现
11、在指令中,所要找的操作数是一个二进制数或十进制数,出现在指令中,用用“#”作前缀作前缀 MOV A,#20H74HA 操作码操作码立即数立即数程序存储器程序存储器PCPC+120H20H第第3 3章章 单片机汇编程序设计单片机汇编程序设计在有的指令中,也会用到在有的指令中,也会用到16位立即数,如:位立即数,如:MOVDPTR,#0123HDPTR由由两个两个特殊功能寄存器特殊功能寄存器DPH和和DPL组成组成90H23H01H23H01HPCPC+1PC+2操作码操作码低位立即数低位立即数高位立即数高位立即数程序存储器程序存储器SFRDPLDPH 注意:注意:1.1.只有源操作数只有源操作数
12、能使用立即寻址方式。能使用立即寻址方式。2.2.立即数长度必须立即数长度必须小于或等于小于或等于目的操作数的长度。目的操作数的长度。第第3 3章章 单片机汇编程序设计单片机汇编程序设计3.2.2寄存器寻址寄存器寻址操作数存放在工作寄存器操作数存放在工作寄存器R0 R7中,或中,或累加器累加器A、寄存器寄存器B或或数据指针数据指针DPTR中中,其它其它SFR中的内容的寻址方式不属于寄存器中的内容的寻址方式不属于寄存器寻址。寻址。MOV A,R5101PC操作码操作码程序存储器程序存储器内部内部RAMR5AXXXXR6R71101第第3 3章章 单片机汇编程序设计单片机汇编程序设计3.2.3存储器
13、数寻址存储器数寻址 存储器数寻址针对的数据是存放在存储器数寻址针对的数据是存放在存储器存储器单元单元中,对于存储器单元的内容通过提供中,对于存储器单元的内容通过提供存储存储器单元地址器单元地址使用。使用。根据存储器单元地址的提供方式,存储器根据存储器单元地址的提供方式,存储器数的寻址方式有:数的寻址方式有:l 1 1、直接寻址;、直接寻址;l 2 2、寄存器间接寻址;、寄存器间接寻址;l 3 3、变址寻址。、变址寻址。第第3 3章章 单片机汇编程序设计单片机汇编程序设计1、直接寻址、直接寻址指令中直接给出操作数的地址,数据存放在该地址对应的存指令中直接给出操作数的地址,数据存放在该地址对应的存
14、储单元中。储单元中。MOV A,30H MOV 30H,DPH(SFR的名称的名称对应其符号地址,故对应其符号地址,故也是直接寻址)也是直接寻址)74H30HPCPC+1操作码操作码直接地址直接地址程序存储器程序存储器内部内部RAM30HAXXXX第第3 3章章 单片机汇编程序设计单片机汇编程序设计1直接寻址直接寻址在在MCS-51中,中,数据前面不加数据前面不加“#”是存储单元地址而不是存储单元地址而不是常数,常数前面要加符号是常数,常数前面要加符号“#”。对于特殊功能寄存器,在指令中使用时往往通过特殊对于特殊功能寄存器,在指令中使用时往往通过特殊功能寄存器的功能寄存器的名称名称使用,而特殊
15、功能寄存器名称实际上是使用,而特殊功能寄存器名称实际上是特殊功能寄存器单元的符号地址,因此它们是特殊功能寄存器单元的符号地址,因此它们是直接寻址直接寻址。例如:例如:MOVA,P0其功能是把其功能是把P0口的内容送给累加器口的内容送给累加器A。P0是特殊功能是特殊功能寄存器寄存器P0口的符号地址,该指令在翻译成机器码时,口的符号地址,该指令在翻译成机器码时,P0就就转换成直接地址转换成直接地址80H。第第3 3章章 单片机汇编程序设计单片机汇编程序设计2寄存器间接寻址寄存器间接寻址指数据存放在存储单元指数据存放在存储单元中,而存储单元地址存放在寄存器中,在指中,而存储单元地址存放在寄存器中,在
16、指令中通过提供存放存储单元地址的寄存器来使用对应的存储单元。形式令中通过提供存放存储单元地址的寄存器来使用对应的存储单元。形式为:为:寄存器名。寄存器名。例如:例如:MOVA,R1该指令的功能是将以工作寄存器该指令的功能是将以工作寄存器R1中的内容为地址的片内中的内容为地址的片内RAM单单元的数据传送到累加器元的数据传送到累加器A中去。指令的源操作数是寄存器间接寻址。中去。指令的源操作数是寄存器间接寻址。80H20H20HA80HR1寄存器间接寻址用到的寄存器只能是寄存器间接寻址用到的寄存器只能是R0、R1和和DPTR,它能访问的数据是片内数据,它能访问的数据是片内数据存储器和片外数据存储器。
17、存储器和片外数据存储器。片内数据存储器只能用片内数据存储器只能用R0和和R1作指针间作指针间接访问接访问;若若R1中的内容为中的内容为80H,片内,片内RAM地址为地址为80H的单元中的内容为的单元中的内容为20H,则执行该指令后,则执行该指令后,累加器累加器A的内容为的内容为20H。片外数据存储器,低端的片外数据存储器,低端的256字节单元,既字节单元,既可以可以R0或或R1作指针间接访问,也可用作指针间接访问,也可用DPTR作作指针间接访问,指针间接访问,而高端的字节单元则只能以而高端的字节单元则只能以DPTR作指针间接访问。作指针间接访问。第第3 3章章 单片机汇编程序设计单片机汇编程序
18、设计MOV R0,10HMOV R0,10HMOVMOV A,R0 A,R0MOVX MOVX A,R0A,R0对于片内对于片内RAM和片外和片外RAM的低的低256字节都可字节都可以用以用R0和和R1作指针访问,它们之间用指令来作指针访问,它们之间用指令来区别:区别:片内片内RAM访问用访问用MOV指令,指令,片外片外RAM访问用访问用MOVX指令指令。第第3 3章章 单片机汇编程序设计单片机汇编程序设计例如:例如:MOVCA,A+DPTR功能功能:将将DPTR和和A中的内容相加作为程中的内容相加作为程序存储器的地址,从序存储器的地址,从对应的单元中取出内对应的单元中取出内容送累加器容送累加
19、器A中。中。源操作数的寻址方式源操作数的寻址方式为变址寻址为变址寻址2000H30H30HDPTRA2005H05HA+3变址寻址变址寻址操作数的地址由操作数的地址由基址寄存器的地址基址寄存器的地址加上加上变址变址寄存器的地址得到。寄存器的地址得到。在在MCS-51系统中,它是以系统中,它是以数据指针寄存器数据指针寄存器DPTR或程序计数器或程序计数器PC为为基址基址,累加器,累加器A为变址,两者相加得存储单元的地址,所访问的存储器为变址,两者相加得存储单元的地址,所访问的存储器为程序存储器。为程序存储器。第第3 3章章 单片机汇编程序设计单片机汇编程序设计 操作数地址操作数地址=变地址变地址
20、+基地址基地址 基地址寄存器基地址寄存器 DPTR 或或 PC 变址寄存器变址寄存器 A 该寻址方式常用于访问该寻址方式常用于访问程序存储器程序存储器,查表查表。如如 MOVC A,A+DPTRPC操作码操作码程序存储器程序存储器SFRA1001001105H20HALU2005H30HDPHDPL00H2000H2000H+05H=2005H30H第第3 3章章 单片机汇编程序设计单片机汇编程序设计3.2.4位寻址位寻址MCS-51系列单片机中有专用的系列单片机中有专用的位运算指令位运算指令,可以对,可以对位寻位寻址区址区的每一个位进行的每一个位进行数据传送、逻辑运算数据传送、逻辑运算等操作
21、,如:等操作,如:MOVC,07H;C(07H)该指令属于位操作指令,作用是将该指令属于位操作指令,作用是将位地址为位地址为07H的位单元的位单元(字节地址字节地址20H单元的单元的D7位位)传送到传送到位累加器位累加器C中。中。PC操作码操作码程序存储器程序存储器C20HA2H00PC+107HPSWX07SFRX第第3 3章章 单片机汇编程序设计单片机汇编程序设计位寻址是指操作数是位寻址是指操作数是二进制位二进制位的寻址方式。在的寻址方式。在MCS-51单片机中有一个独立的位处理器,有多条位处单片机中有一个独立的位处理器,有多条位处理指令,能够进行各种位运算。理指令,能够进行各种位运算。位
22、处理的操作对象是各种可位寻址位。对于它们的位处理的操作对象是各种可位寻址位。对于它们的访问是通过提供相应的位地址来处理。访问是通过提供相应的位地址来处理。指令给出位地址。一位数据在存储器位寻址区。指令给出位地址。一位数据在存储器位寻址区。(1)内部)内部RAM低低128单元中的位寻址区:单元中的位寻址区:位地址为位地址为00H07FH共共128位位(字节地址为字节地址为20H2FH);(2)内部)内部RAM高高128单元中的专用寄存器的可寻址位:单元中的专用寄存器的可寻址位:SFR中中11个有位地址寄存器中的个有位地址寄存器中的83位。位。第第3 3章章 单片机汇编程序设计单片机汇编程序设计
23、在在MCS-51系统中,位地址的表示可以用以下几系统中,位地址的表示可以用以下几种方式:种方式:1直接使用位地址直接使用位地址(00H07FH+83位)。位)。例如:例如:PSW的位的位6可表示为可表示为0D6H(位地址)。(位地址)。2字节地址带位号字节地址带位号。例如:例如:PSW的位的位6可表示为可表示为0D0H.6;20H.3表示表示20H单元的单元的3位。位。3特殊功能寄存器名带位号特殊功能寄存器名带位号。例如:例如:PSW的位的位6可表示为可表示为PSW.6;P0.1表示表示P0口的口的1位。位。4位符号地址位符号地址。例如:例如:PSW的位的位6可表示为可表示为AC;TR0是定时
24、是定时/计数器计数器T0的启动位。的启动位。第第3 3章章 单片机汇编程序设计单片机汇编程序设计例:例:MOV CMOV C,40H40H;CYCY(位地址位地址40H)40H)设指令执行前设指令执行前 CY=1CY=1,位地址,位地址40H40H存储器单元存储器单元 如图,执行指令后,如图,执行指令后,CY=CY=?29H 0110001028H 11010110位寻址区位寻址区 0第第3 3章章 单片机汇编程序设计单片机汇编程序设计3.2.5指令寻址指令寻址一、绝对寻址一、绝对寻址绝对寻址是在指令的操作数中直接提供目的位置的绝对寻址是在指令的操作数中直接提供目的位置的地址或地址的一部分。地
25、址或地址的一部分。在在MCS-51系统中:系统中:l长转移和长调用提供目的位置的长转移和长调用提供目的位置的16位地址;位地址;l绝对转移和绝对调用提供目的位置的绝对转移和绝对调用提供目的位置的16位地址的低位地址的低11位。位。它们都为绝对寻址。它们都为绝对寻址。第第3 3章章 单片机汇编程序设计单片机汇编程序设计二、相对寻址二、相对寻址以当前程序计数器以当前程序计数器PC值加上指令中给出的偏移量值加上指令中给出的偏移量rel得到目的得到目的位置的地址。位置的地址。例如例如:2010H:SJMPLL2010H:SJMP-82012H:注意两点:注意两点:(1)当前当前PC值是指转移指令执行时
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第3章 单片机汇编程序设计 单片机 汇编程序 设计
限制150内