单片机教程 第3章.ppt
《单片机教程 第3章.ppt》由会员分享,可在线阅读,更多相关《单片机教程 第3章.ppt(201页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、单片机教程单片机教程 第第3章章第 3 章 MCS-51单片机指令系统 第第3章章MCS-51单片机指令系统单片机指令系统及汇编语言程序设计及汇编语言程序设计3.1指令系统简介指令系统简介3.2寻址方式寻址方式3.3指令系统指令系统3.4汇编语言程序设计基础汇编语言程序设计基础3.5程序设计举例程序设计举例3.6习题习题逻辑电路模拟指令部分上机第 3 章 MCS-51单片机指令系统 1.单字节指令单字节指令单字节指令格式由单字节指令格式由8位二进制编码表示位二进制编码表示,例如例如:CLRAE4H2.双字节指令双字节指令双双字字节节指指令令格格式式由由两两个个字字节节组组成成,操操作作码码和和
2、操操作作数数,例例如如:MOVA,10H74H10H3.三字节指令三字节指令三字节指令格式中三字节指令格式中,第一个字节为操作码第一个字节为操作码,后两个字节为后两个字节为操作数操作数,例如例如:MOV40H,30H75H40H30H 3.1指令系统简介指令系统简介第 3 章 MCS-51单片机指令系统 一条汇编语言指令中最多包含 4 个区段,如下所示:标号标号:操作码操作码操作数操作数;注释注释 4 个区段之间要用分隔符分开:标号与操作码之间用“:”隔开,操作码与操作数之间用空空格格隔开,操作数与注释之间用“;”隔开,如果操作数有两个以上,则在操作数之间要用逗号“,”隔开 (乘法指令和除法指
3、令除外 )。3.1.1指令格式指令格式第 3 章 MCS-51单片机指令系统 3.1.2指令分类及符号说明指令分类及符号说明1.按功能按功能,MCS-51指令系统可分为指令系统可分为5类类:(1)数据传送数据传送;(2)算术运算算术运算;(3)逻辑运算逻辑运算;(4)位操作位操作;(5)控制转移。控制转移。不同存储区用不同的传送指令不同存储区用不同的传送指令哪些位允许按位寻址哪些位允许按位寻址?位地址的表示方式。位地址的表示方式。第 3 章 MCS-51单片机指令系统 Rn当前选定的寄存器区中的当前选定的寄存器区中的8个工作寄存器个工作寄存器R0R7,即即n=07。Ri当前选定的寄存器区中的当
4、前选定的寄存器区中的2个寄存器个寄存器R0、R1,i=0、1。direct8位位内部内部RAM单元单元的地址的地址,它可以是一个内部数据它可以是一个内部数据区区RAM单元单元(00H7FH)或或特殊功能寄存器地址。特殊功能寄存器地址。data指令中的指令中的8位常数。位常数。data16指令中的指令中的16位常数。位常数。2.描述指令的符号意义描述指令的符号意义P45第 3 章 MCS-51单片机指令系统 addr16 16 addr16 16 位的目的地址位的目的地址,用于用于 LJMP,LCALL LJMP,LCALL 指指 令令,可指向可指向 64 KB 64 KB 程序存储器地址空间。
5、程序存储器地址空间。addraddr11 11 1111位的目的地址位的目的地址,用于用于AJMP,ACALLAJMP,ACALL指令。指令。目的地址必须与下一条指令的第一个字节在同目的地址必须与下一条指令的第一个字节在同 一个一个 2 KB 2 KB 程序存储器地址空间之内。程序存储器地址空间之内。relrel 8 8 位带符号的偏移量字节位带符号的偏移量字节,用于用于SJMP SJMP 和所有条和所有条 件转移指令中。件转移指令中。偏移量相对于下一条指令的第偏移量相对于下一条指令的第 一一个个字字节节计计算算,在在128128+127+127 范范围围内内取取值值。描述指令的符号意义描述指
6、令的符号意义非数据存储器非数据存储器第 3 章 MCS-51单片机指令系统 描述指令的符号意义描述指令的符号意义bit内部数据内部数据RAM或或特殊功能寄存器中的可直接特殊功能寄存器中的可直接寻址位。寻址位。DPTR数据指针数据指针,可用作可用作16位的地址寄存器。位的地址寄存器。AA累加器。累加器。BB寄存器寄存器,用于用于 MUL MUL 和和 DIV DIV 指令中。指令中。20H2FH第 3 章 MCS-51单片机指令系统 3.1寻址方式寻址方式寻找操作数地址的方式寻找操作数地址的方式第 3 章 MCS-51单片机指令系统 在在MCS-51单片机指令系统中单片机指令系统中,有以下有以下
7、7种寻址方式种寻址方式:(1)立即寻址立即寻址;(2)直接寻址直接寻址;(3)寄存器寻址寄存器寻址;(4)寄存器间接寻址寄存器间接寻址;(5)基址寄存器加变址寄存器间接寻址基址寄存器加变址寄存器间接寻址;(6)相对寻址相对寻址;(7)位寻址。位寻址。第 3 章 MCS-51单片机指令系统 1.立即寻址立即寻址立即寻址方式是指操作数包含在指令字节中。立即寻址方式是指操作数包含在指令字节中。如:如:MOVA,3AH;将立即数将立即数3AH送累加器送累加器A中中MOVDPTR,0DFFFH注意注意立即数前加立即数前加“#”号号第 3 章 MCS-51单片机指令系统 2.直接寻址直接寻址在指令中直接给
8、出操作数的地址。在指令中直接给出操作数的地址。内部数据存储器的低内部数据存储器的低128个字节单元(个字节单元(00H7FH)。)。特殊功能寄存器。特殊功能寄存器。特殊功能寄存器只能用直接寻址方式进行访问。特殊功能寄存器只能用直接寻址方式进行访问。位地址空间。位地址空间。使用空间第 3 章 MCS-51单片机指令系统 例例:(1)MOVTCON,A(2)MOVA,P1(3)MOVA,76H(4)ADDA,43H第 3 章 MCS-51单片机指令系统 3.寄存器寻址寄存器寻址(1 1)参加操作的数存放在寄存器里。)参加操作的数存放在寄存器里。(2 2)寄存器包括)寄存器包括 8 8个工作寄存器个
9、工作寄存器 R0R0R7R7,累加器累加器A A,寄寄 存器存器B B、数据指针、数据指针DPTRDPTR和布尔处理器的位累加器和布尔处理器的位累加器 C C。注意注意操作数类型要配对操作数类型要配对当前寄存器处于哪一个寄存器区当前寄存器处于哪一个寄存器区第 3 章 MCS-51单片机指令系统 例例:(1)MOVA,R1(2)ADDA,R1(3)MOVDPTR,#4321H第 3 章 MCS-51单片机指令系统 4.寄存器间接寻址寄存器间接寻址(1 1)寄存器的内容为操作数的地址。)寄存器的内容为操作数的地址。(2 2)寄存器间接寻址符号为)寄存器间接寻址符号为“”,”,(3 3)寻址内部)寻
10、址内部 RAM RAM 区,区,只能使用寄存器只能使用寄存器 R0 R0、R1 R1 作为地址指针作为地址指针(4 4)访问外部)访问外部 RAM RAM 时时,可使可使 用用 R0 R0、R1 R1 及及 DPTR DPTR 作作 为地址指针。例如为地址指针。例如:第 3 章 MCS-51单片机指令系统 例例(1)MOV A,R0(2)MOV R1,76H(3)XCHDA,R0(4)MOVXDPTR,A(5)INCR1第 3 章 MCS-51单片机指令系统 5.基址寄存器加变址寄存器间接寻址基址寄存器加变址寄存器间接寻址(1 1)用于访问程序存储器中的数据表格)用于访问程序存储器中的数据表格
11、;(2 2)它以基址寄存器)它以基址寄存器 DPTR DPTR 或或 PC PC 的内容为基本地址的内容为基本地址,加上变址寄存器加上变址寄存器 A A 的内容作为操作数的地址。的内容作为操作数的地址。如如 MOVCA,A+DPTRJMPA+DPTRMOVCA,A+PC第 3 章 MCS-51单片机指令系统 6.相对寻址相对寻址(1 1)以)以 PC PC 的内容为基本地址的内容为基本地址,加上指令中给定的加上指令中给定的 偏移量作地址增量。偏移量作地址增量。(2 2)偏移量是一个)偏移量是一个 8 8 位带符号的常数位带符号的常数,其范围为其范围为128128+127+127。(3 3)用于
12、相对转移指令)用于相对转移指令,第 3 章 MCS-51单片机指令系统 例例(1)2000HSJMP08H;2字节指令字节指令目标地址目标地址=2000H+02H+08H=200AH(2)JZ30H;2字节指令字节指令(3)若若(A)=0,则则PC=PC+2+rel(4)若若(A)0,继续执行下一条继续执行下一条第 3 章 MCS-51单片机指令系统 7.位寻址位寻址操作数为二进制数中的位;操作数为二进制数中的位;PSW PSW 中的中的 CY CY 是位寻址区中的累加器;是位寻址区中的累加器;可按位寻址的位可按位寻址的位*内部内部RAM单元中单元中20H2FH区域中的位区域中的位*地址可用地
13、址可用8整除的专用寄存器中的位。整除的专用寄存器中的位。第 3 章 MCS-51单片机指令系统 例例(1)MOV C,07H(2)SETB EX0第 3 章 MCS-51单片机指令系统 3.3指令系统指令系统MCS-51指令系统可分为指令系统可分为5类类:(1)数据传送数据传送;(2)算术运算算术运算;(3)逻辑运算逻辑运算;(4)控制转移。控制转移。(5)位操作位操作;第 3 章 MCS-51单片机指令系统 3.3.1数据传送指令数据传送指令1、特点、特点一般不影响标志位一般不影响标志位目的操作数为目的操作数为A的指令将影响的指令将影响P标志标志寻址方式寻址方式寄存器、寄存器间接、直接、立即
14、、寄存器、寄存器间接、直接、立即、基址加变址基址加变址第 3 章 MCS-51单片机指令系统 2、数据传送指令、数据传送指令包括:包括:(1)片内数据存储器传送指令)片内数据存储器传送指令(2)片外数据存储器传送指令)片外数据存储器传送指令(3)程序存储器数据交换指令)程序存储器数据交换指令(4)数据交换指令)数据交换指令(5)堆栈操作指令)堆栈操作指令第 3 章 MCS-51单片机指令系统(1)片内数据传送指令片内数据传送指令1)以累加器为目的操作数以累加器为目的操作数2)MOV A,Rn3)MOV A,Ri4)MOV A,direct5)MOV A,#data6)指令功能:把源操作数的内容
15、送入累加器指令功能:把源操作数的内容送入累加器A,源操作数不变。,源操作数不变。2)以工作寄存器为目的操作数以工作寄存器为目的操作数3)MOV Rn,A4)MOV Rn,direct5)MOV Rn,#data6)指令功能:把源操作数的内容送入通用寄存器,源操作数指令功能:把源操作数的内容送入通用寄存器,源操作数不变。不变。传送指令传送指令寄存器 寄存器?第 3 章 MCS-51单片机指令系统 3)以直接地址为目的操作数以直接地址为目的操作数MOVdirect,AMOVdirect,RnMOVdirect,directMOVdirect,RiMOVdirect,#data4)以间接地址为目的操
16、作数以间接地址为目的操作数MOVRi,AMOVRi,directMOVRi,#data5)16位数据传送位数据传送MOVDPTR,#data第 3 章 MCS-51单片机指令系统 例例3-1MOVA,R1例例3-2 MOVA,#16H例例3-3MOVR0,#50HMOVA,R0例例3-4 MOVA,30H例例3-5 MOVR1,AMOVR3,30HMOVR7,#80H寄存器寻址寄存器寻址立即寻址立即寻址寄存器间接寻址寄存器间接寻址直接寻址直接寻址寄存器在第几区?第 3 章 MCS-51单片机指令系统 例例3-6 MOV30H,AMOV20H,R7MOV27H,#0FHMOV50H,40H例例3
17、-7 MOVA,#00HMOVR0,#20HMOVR7,#20HLP1:MOVR0,AINC R0DJNZR7,LP11第 3 章 MCS-51单片机指令系统(2)(2)片外数据存储器传送指令片外数据存储器传送指令 MOVX A,DPTR MOVX A,Ri MOVX DPTR,A MOVX Ri,A传送指令传送指令第 3 章 MCS-51单片机指令系统 在累加器在累加器A A 与与 外部数据存储器外部数据存储器 RAM RAM 单元或单元或I/OI/O口口 之间进行数据传送。之间进行数据传送。DPTR DPTR 所包含的所包含的 16 16 位地址信息位地址信息,由由 P0(P0(低低8 8
18、位位)和和 P2(P2(高高8 8位位)输出输出,而数据信息由而数据信息由 P0 P0 口传送。口传送。由由 Ri Ri 作为间接寻址寄存器时作为间接寻址寄存器时,P0 P0 口上分时输出口上分时输出 RiRi 指定的指定的 8 8 位地址信息及传输位地址信息及传输 8 8 位数据。位数据。高位地址高位地址?这组指令的功能这组指令的功能第 3 章 MCS-51单片机指令系统 例例3-8 MOVDPTR,#8000HMOVXA,DPTR例例3-9 MOVDPTR,#2040HMOVXA,DPTRMOV20H,A例例3-10MOVDPTR,#2041HMOVA,20HMOVXDPTR,A例例3-1
19、1MOVDPTR,#2000HMOVXA,DPTRMOVDPTR,#3FFFHMOVXDPTR,A第 3 章 MCS-51单片机指令系统(3)程序存储器数据传送指令程序存储器数据传送指令 MOVC A,A+PC;(A)为为8位位无无符符号号数数 查表指令查表指令 查找存放在程序存储器中的常数表格。查找存放在程序存储器中的常数表格。(PC)(PC)(下一条指令的起始地址)下一条指令的起始地址)+(A)+(A)A 表格只能被一段程序所利用。表格只能被一段程序所利用。若表格不是紧跟在查表指令的下面若表格不是紧跟在查表指令的下面,可以通过可以通过 调整调整 A A的内容进行查表。的内容进行查表。传送指
20、令传送指令第 3 章 MCS-51单片机指令系统 MOVC A,A+DPTR;(A)为为8位位无无符符号号数数查表指令功能查表指令功能:查找存放在程序存储器中的常数表格。查找存放在程序存储器中的常数表格。(DPTR)+(A)A,(DPTR)+(A)A,表格的大小和位置可以在表格的大小和位置可以在 64 KB64 KB程序存储器中任意安排程序存储器中任意安排,并且一个表格可以为各个程序块所共用。并且一个表格可以为各个程序块所共用。第 3 章 MCS-51单片机指令系统 例例3-122100HMOVA,#0AH2102HMOVCA,A+PC2103H0C0H;字符字符“0”的段码的段码2104H0
21、F9H;字符字符“1”的段码的段码2105H0A4H;字符字符“2”的段码的段码2106H0B0H;字符字符“3”的段码的段码2107H0B0H;字符字符“4”的段码的段码:第 3 章 MCS-51单片机指令系统 例例3-12 3-12 从段码表中取出从段码表中取出“3”“3”的的LEDLED显示显示 码,送显示端口。码,送显示端口。2100HMOVA,#0AH2102HMOVCA,A+PC2103HMOVDPTR,#1200H2106HMOVXDPTR,A:210AH0C0H;字符字符“0”的段码的段码210BH0F9H;字符字符“1”的段码的段码210CH0A4H;字符字符“2”的段码的段
22、码210DH0B0H;字符字符“3”的段码的段码210EH0B0H;字符字符“4”的段码的段码:第 3 章 MCS-51单片机指令系统 例例3-122100HMOVA,#0AH2102HMOVCA,A+PC2103HMOVDPTR,#1200H2106HMOVXDPTR,A:210AH0C0H;字符字符“0”的段码的段码210BH0F9H;字符字符“1”的段码的段码210CH0A4H;字符字符“2”的段码的段码210DH0B0H;字符字符“3”的段码的段码210EH0B0H;字符字符“4”的段码的段码:MOVA,#3ADDA,#7第 3 章 MCS-51单片机指令系统 例例3-13已知:已知:
23、ASCII码表首地址为码表首地址为7000HP42要求:查找数字要求:查找数字2的的ASCII码码1004HMOVA,#02H1006HMOVDPTR,#7000H1009HMOVCA,A+DPTR:7000H30H;ASCII码表码表7000H31H7000H32H7000H33H7000H34H第 3 章 MCS-51单片机指令系统(4)数据交换指令)数据交换指令1)字节交换指令字节交换指令 字节交换字节交换 XCH A,Rn XCH A,Ri XCH A,direct传送指令传送指令A A 的内容与源操作的内容与源操作数内容相互交换数内容相互交换 将累加器将累加器 A A 的的高高 4
24、4 位与低位与低 4 4 位之位之间相互交换间相互交换 将将 A A 的低的低 4 4 位内容位内容和(和(RiRi)所指出的内部)所指出的内部 RAM RAM 单元的低单元的低 4 4 位内容位内容相互交换相互交换 半字节交换半字节交换 XCHD A,Ri SWAP A作业第 3 章 MCS-51单片机指令系统 例例3-17设:外部设:外部RAM中,(中,(20H)=38H,内部内部RAM中,(中,(20H)=08H,P55MOVR1,20HMOVXA,R1XCHA,R1MOVXR1,A源程序:建立地址指针第 3 章 MCS-51单片机指令系统 例例3-14A=3FH,R0=20H,(,(2
25、0H)=46H执行:执行:XCHA,R0XCHDA,R0XCHA,20H例例3-15A=7FH,R0=20H,(,(20H)=35H执行:执行:XCHDA,R0例例3-16将将20H单元的内容与单元的内容与A的内容互换,再将的内容互换,再将A的高四位存入的高四位存入R1指向的内部指向的内部RAM单元的单元的低四位,低四位,A的低四位存入该单元的高四位。的低四位存入该单元的高四位。XCH A,20HSWAP AMOV R1,A第 3 章 MCS-51单片机指令系统(5)堆栈操作指令堆栈操作指令 PUSH direct POP direct说明说明:堆栈指针堆栈指针SP随时指示栈顶的位置。随时指示
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机教程 第3章 单片机 教程
限制150内