单片机原理及应用(C51版)第3章MCS-51指令系统.ppt
《单片机原理及应用(C51版)第3章MCS-51指令系统.ppt》由会员分享,可在线阅读,更多相关《单片机原理及应用(C51版)第3章MCS-51指令系统.ppt(53页珍藏版)》请在三一办公上搜索。
1、第3章 MCS-51指令系统 及汇编语言程序设计3.1 指令系统简介及寻址方式3.2 指令系统及应用举例3.3 汇编语言程序设计3.4 实训项目3,3.1 指令系统简介及寻址方式 指令系统是一种CPU所能直接执行的所有命令的集合,CPU的主要功能是由它的指令系统来体现的。MCS-51系列单片机指令系统共有111条指令,其中有49条单字节指令、45条双字节指令和17条三字节指令。MCS-51的指令系统中有64条指令的执行时间为一个机器周期(12个振荡周期),45条指令的执行时间为两个机器周期。,3.1.1 指令分类 按指令实现的功能可分为五大类:1)数据传送指令:完成数据交换、存储。包括片内RA
2、M、片外RAM、程序存储器的传送指令,交换及堆栈指令。2)算术运算类:完成各种算术运算,包括加法、带进位加、减、乘、除、加1、减1指令。3)逻辑运算类:完成逻辑运算,包括逻辑与、或、异或、测试及移位指令。4)布尔变量操作类:完成单独一位的操作,分为位数据传送、位与、位或、位转移指令。5)控制程序转移类:实现各种有条件和无条件的转移等,包括无条件转移、条件转移、子程序调用返回、中断返回及空操作指令,3.1.2 指令格式 MCS-51指令系统中的每一条指令都有两级指令格式:CPU可直接识别并执行的机器语言指令。汇编语言指令(简称汇编指令)。机器语言指令由二进制数“0”和“1”编码而成,也称目标代码
3、,执行速度最快。汇编语言指令是在机器语言指令的基础上,用英文单词或英文单词缩写表示机器语言指令的操作码(助记符),用符号表示操作数或操作数的地址。汇编语言指令实际上是符号化的机器语言,MCS-51汇编语言指令格式由以下几个部分组成:标号:操作码 目的操作数,源操作数;注释其中:中的项表示为可选项;标号:又称为指令地址符号,一般是由16个字符 组成,以字母开头的字母数字串,与操作码之间用冒号分开;操作码:是由助记符所表示的指令的操作功能;操作数:是指参加操作的数据或数据的地址;注释:是为该条指令作的说明,以便于阅读。操作码是指令的核心,不可缺少,其他几项根据不同指令为可选项。,3.1.3 寻址方
4、式 所谓寻址方式就是寻找或获得操作数的方式。MCS-51指令系统的寻址方式有以下7种:1.立即寻址 在立即寻址方式中,操作数直接出现在指令中。操作数前加“#”号表示,也称立即数。指令的操作数可以是8位或16位数。例如:MOV A,#26H;A26H 指令执行结果:(A)=26H,即把立即数26H直接送到A中。,2.直接寻址 在直接寻址方式中,操作数的单元地址直接出现在指令中,这一寻址方式可进行内部存储单元的访问。它包括:(1)特殊功能寄存器地址空间。这也是惟一可寻址特殊功能寄存器(SFR)的寻址方式。例如:MOV TCON,ACC 指令执行结果:累加器A的内容传送给寄存器TCON。(ACC在汇
5、编后的机器码为字节地址E0H,因而为直接寻址。而A表示对累加器的寄存器寻址。)(2)内部RAM的低128字节 例如:MOV A,76H 指令执行结果:内部RAM地址为76H单元的内容传送给A。,3.寄存器寻址在寄存器寻址方式中,寄存器中的内容就是操作数。例如:MOV A,R1;A(R1)指令执行结果:把寄存器R1中的内容送到累加器A中。,4.寄存器间接寻址 在寄存器间接寻址方式中,指定寄存器中的内容是操作数的地址,该地址对应存储单元的内容才是操作数。(1)访问内部数据存储器时,用当前工作寄存器R0和R1作间址,即R0、R1,例如:MOV A,R0 该指令的功能是将R0所指存储单元中内容送A中。
6、(2)访问外部存储器,16位数据指针DPTR作为间址寄存器。例如:MOVX A,R1 MOVX DPTR,A(3)在堆栈操作中则用堆栈指针SP作间址。,5.变址寻址 变址寻址方式是以程序指针PC或数据指针DPTR为基址寄存器,以累加器A作为变址寄存器,两者内容相加(即基地址+偏移量)形成16位的操作数地址,变址寻址方式主要用于访问固化在程序存储器中的某个字节。变址寻址方式有两类:(1)用程序指针PC作基地址,A作变址,形成操作数地址:A+PC。(2)用数据指针DPTR作基地址,A作变址,形成操作数地址:A+DPTR。6.相对寻址 相对寻址是以程序计数器PC的当前值作为基地址,与指令中的第二字节
7、给出的相对偏移量rel进行相加,所得和为程序的转移地址。,7.位寻址 MCS-51系列单片机中有独立的性能优越的布尔处理器,包括位变量操作运算器、位累加器和位存储器,可对位地址空间的每个位进行位变量传送、状态控制、逻辑运算等操作。位地址包括:内部RAM地址空间的可进行位寻址的128位;SFR地址空间的可位寻址的11个8位寄存器的88位。位寻址给出的是直接地址。,3.1.4 寻址空间 MCS-51的7种操作数的寻址方式与所涉及到的存储器空间的关系如下:立即寻址:立即数在程序存储器ROM。直接寻址:操作数的地址在指令中,操作数在片内RAM低128B和专用寄存器SFR。寄存器寻址:操作数在工作寄存器
8、R0R7,A,B,Cy,DPTR。寄存器间接寻址:操作数的地址在指令中,操作数在片内RAM低128B(以R0、R1、SP(仅对PUSH、POP指令)形式寻址);片外RAM(以R0、R1、DPTR形式寻址)。基址加变址寻址:操作数在程序存储器ROM。相对寻址:操作数在程序存储器-128+127B范围内。位寻址:操作数为片内RAM的20H2FH字节地址中的所有位(位地址为00H7FH)和部分SFR的位。,3.2 指令系统及应用举例3.2.1 数据传送指令(1)片内数据传送指令 MOV A,Rn;A(Rn)源操作数为寄存器寻址 MOV A,Ri;A(Ri)为寄存器间接寻址;(i=0或1,下同)MOV
9、 A,direct;A(直接地址direct);源操作数为直接寻址 MOV A,#data;A立即数data,下同;源操作数为立即寻址 MOV Rn,A;Rn(A)(Rn为R0R7,下同)MOV Rn,direct;Rn(direct)MOV Rn,#data;Rndata,MOV direct,A MOV direct,Rn MOV direct,direct MOV direct,Ri MOV direct,#data MOV Ri,A MOV Ri,direct MOV Ri,#data 16位数据传送指令有以下惟一形式:MOV DPTR,#data16 该指令的功能:把16位立即数传送
10、至16位数据指针寄存器DPTR。,(2)片外数据存储器传送指令片外数据存储器传送指令有以下形式:MOVX A,Ri;A(Ri),为寄存器间接寻址 MOVX A,DPTR;A(DPTR),为寄存器间接寻址 MOVX R,A;(Ri)(A)MOVX DPTR,A;(DPTR)(A)单片机内部与片外数据存储器是通过累加器A进行数据传送的。(3)程序存储器数据传送指令程序存储器数据传送指令有以下两种形式:MOVC A,A+PC MOVC A,A+DPTR,(4)数据交换指令数据交换指令有以下形式:1)字节交换指令:XCH A,Rn;A的内容与Rn的内容交换XCH A,Ri;A的内容与(Ri)的内容交换
11、XCH A,direct;A的内容与(direct)的内容交换2)低半字节交换指令:XCHD A,Ri;A的低四位与(Ri)的低四位交换3)累加器A的高、低半字节交换指令:SWAP A;A的低四位与高四位互换,(5)堆栈操作指令堆栈操作指令有以下形式:PUSH direct;SP(SP)+1(先指针加1);(SP)(direct)(再压栈)POP direct;(SP)(direct)(先弹出);SP(SP)-1(再指针减1)PUSH指令是入栈(或称压栈或进栈)指令,其功能是先将堆栈指针SP的内容加1,然后将直接寻址direct单元中的数压入到SP所指示的单元中。POP是出栈(或称弹出)指令,
12、其功能是先将堆栈指针SP所指示的单元内容弹出到直接寻址direct单元中,然后将SP的内容减1,SP始终指向栈顶。,3.3.2 算术运算指令 算术运算类指令共有24条,包括加法、带进位加法、带借位减法、乘、除、加1、减1和十进制调整指令,其指令助记符分别为:ADD、ADDC、SUBB、MUL、DIV、INC、DEC、和DA等。1.加减运算不带进位的加法指令:ADD A,#data;A(A)+dataADD A,direct;A(A)+(direct)ADD A,Rn;A(A)+(Rn)ADD A,Ri;A(A)+(Ri)带进位加法指令:ADDCA,Rn;A(A)+(Rn)+CyADDCA,#d
13、ata;A(A)+#data+Cy,带借位减法指令有以下形式:SUBBA,Rn;A(A)-(Rn)-CySUBBA,Ri;A(A)-(Ri)-CySUBBA,direct;A(A)-(direct)-CySUBBA,#data;A(A)-data-Cy利用加减法指令的可实现的主要功能:1)对8位无符号二进制数进行加减运算。2)借助溢出标志对有符号的二进制整数进行加减运算。3)借助进位标志,可以实现多字节的加减运算。,2.乘法指令乘法指令有以下惟一形式:MUL AB;AAB低字节,;BAB高字节该指令的功能:把累加器A和寄存器B中的两个8位无符号数相乘,乘积又送回A、B内,A中存放低位字节,B中
14、存放高位字节。除法指令有以下惟一形式:DIVAB;A(A)/(B)(商);B(A)/(B)(余数)该指令的功能:把A中的8位无符号数除以B中的8位无符号数,商存放在A中,余数存放在B中。Cy和OV均清0。若除数为0,执行该指令后结果不定,并将OV置1。,3.加1、减1指令加1指令有以下形式:INCA;A(A)+1INCRn;Rn(Rn)+1INCdirect;(direct)(direct)+1INCRi;(Ri)(Ri)+1INCDPTR;DPTR(DPTR)+1减1指令有以下形式:DEC A;A(A)-1DEC Rn;Rn(Rn)-1DEC Ri;(Ri)(Ri)-1DEC direct;
15、(direct)(direct)-1加1、减1指令主要用于调整寻址单元的数据进行加1、减1操作,其结果仍存放在原数据单元。该指令常用于循环程序中对循环次数的控制。,4.十进制调整指令DAA;A(A)(BCD码调整)指令的功能:将存放于A中的两个BCD码(十进制数)的和进行十进制调整,使A中的结果为正确的BCD码数。,3.3.3 逻辑运算类指令逻辑操作指令均对8位二进制数按位进行逻辑运算。逻辑运算类指令无进位,一般不影响标志位。1.双操作数的逻辑运算指令(与、或、异或)(1)逻辑“与”指令ANLA,Rn;A(A)(Rn)ANLA,#data;A(A)dataANLdirect,A;(direct
16、)(direct)(A)与运算规则是:与“0”相与,本位为“0”(即屏蔽);与“1”相与,本位不变。(2)逻辑“或”指令ORL A,Rn;A(A)(Rn)ORL A,Ri;A(A)(Ri)或运算规则是:与“1”相或,本位为“1”;与“0”相或,本位不变。,(3)逻辑“异或”指令XRL A,Rn;A(A)(Rn)XRL A,#data;A(A)data 将源操作数和目的操作数按对应位进行逻辑“异或”运算,并将结果存入目的地址。异或运算的运算规则是:与“1”异或,本位为非(即求反);与“0”异或,本位不变。,2.单操作数的逻辑运算指令(取反、清零)单操作数逻辑运算指令有以下形式:(1)累加器A清0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 原理 应用 C51 MCS 51 指令系统
链接地址:https://www.31ppt.com/p-5937859.html