第7章MCS-51指令系统课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第7章MCS-51指令系统课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MCS 51 指令系统 课件
- 资源描述:
-
1、概述概述寻址方式寻址方式分类指令介绍分类指令介绍第7章 MCS-51指令系统7.1.17.1.1指令分类指令分类l MCS-51MCS-51的指令系统的指令系统使用使用4242种助记符,表达种助记符,表达3333种种功能,共由功能,共由111111条指令构成。条指令构成。l 按指令编码的字节数分类:按指令编码的字节数分类:1 1字节字节(49(49条条)、2 2字节字节(45(45条条)、3 3字节字节(17(17条条)。l 按指令的机器周期数分类:按指令的机器周期数分类:1 1个机器周期个机器周期(64(64条条);2 2个机器周期个机器周期(45(45条条);4 4个机器周期个机器周期(2
2、(2条条,乘、除各乘、除各1 1条)条)实际应用中最频繁的指令,为单周期指令,故实际应用中最频繁的指令,为单周期指令,故f foscosc=12MHz,T=1=12MHz,T=1 s s。速度指标为速度指标为1MIPS1MIPS7.1 7.1 指令系统概述指令系统概述指令的类别及其要素指令的类别及其要素l数据传送类30条条l算术运算类24条条l逻辑运算类35条条l转移操作类22条条l布尔指令类位操作子集位操作子集l指令的功能l指令的寻址方式l指令对PSW的影响l指令的编码字节数l指令的机器周期在程序中行中,指令语句按如下形式书写:在程序中行中,指令语句按如下形式书写:标号标号:助记符助记符 操
3、作数操作数11,操作数操作数22,操作数操作数33;注释注释 l标号于程序行中,代表指令所在的地址标号于程序行中,代表指令所在的地址符号地址;符号地址;l在指令功能解释阶段不使用标号;在指令功能解释阶段不使用标号;l两个操作数的情况比较多,常写成如下:两个操作数的情况比较多,常写成如下:操作码操作码 目的操作数,源操作数目的操作数,源操作数或或op_code dst,src7.1.2 7.1.2 书写格式与缩略语书写格式与缩略语Rn-Rn-当前组的通用寄存器,当前组的通用寄存器,n=0n=07 7Ri-0Ri-0或或1 1,R0R0或或R1R1作间接寻址寄存器。作间接寻址寄存器。direct-
4、8direct-8位内部单元的地址,即直接寻址。位内部单元的地址,即直接寻址。#data#data,#data16-#data16-分别为分别为8 8位和位和1616位立即数。位立即数。addr16-16addr16-16位目的地址。位目的地址。addr11-11addr11-11位目的地址。位目的地址。rel-8rel-8位带符号的补码偏移量。位带符号的补码偏移量。bit-bit-内部内部RAMRAM可位寻址的位地址。可位寻址的位地址。/表示取反操作。表示取反操作。(X)-X(X)-X单元中的内容。单元中的内容。(X)-(X)-以以X X单元内容为地址的单元的内容。单元内容为地址的单元的内容
5、。-间接寄存器或基址寄存器的前缀。间接寄存器或基址寄存器的前缀。寻址方式常用符号说明寻址方式常用符号说明l寻找操作数(数据,指令的处理对象)的方式寻找操作数(数据,指令的处理对象)的方式 寄存器寻址寄存器寻址 直接寻址直接寻址 立即寻址立即寻址 寄存器间接寻址寄存器间接寻址 变址寻址变址寻址l寻找目标地址(程序流程控制)的方式寻找目标地址(程序流程控制)的方式 相对寻址相对寻址 绝对寻址绝对寻址 隐含寻址隐含寻址l位寻址位寻址7.1.3 7.1.3 寻址方式寻址方式(Addressing Mode)(Addressing Mode)寄存器操作数,寻址范围:寄存器操作数,寻址范围:(1 1)4
6、4组组R0 R0 R7R7共共3232个工作寄存器个工作寄存器(2 2)部分特殊功能寄存器,例如)部分特殊功能寄存器,例如A A、B B 以及数以及数据指针寄存器据指针寄存器DPTRDPTR等。等。例:例:MOVMOVA A,RnRn ;(;(RnRn)AA,n=0n=07 7MOVMOVB B,A A寄存器寻址寄存器寻址(Registor AddressingRegistor Addressing)存储器操作数,其地址直接编码到指令中存储器操作数,其地址直接编码到指令中 寻址范围:寻址范围:(1)(1)内部内部RAMRAM的低的低128128个单元(个单元(00-7FH00-7FH)例例MO
7、V AMOV A,40H40H (2)(2)特殊功能寄存器。特殊功能寄存器。例例MOV AMOV A,80H80H ;地址码形式;地址码形式 MOV AMOV A,P0P0;SFRSFR符号形式符号形式两者的机器码完全一致,后者便于记忆。两者的机器码完全一致,后者便于记忆。直接寻址直接寻址(Direct Addressing)(Direct Addressing)超过7FH就到SFR范围MOV A,3AH寄存器寄存器 A AINC INC A A;寄存器寻址寄存器寻址特殊功能寄存器特殊功能寄存器AccAcc(E0HE0H)INC INC ACCACC;直接寻址直接寻址,名称符号,名称符号或或I
8、NC INC 0 0E0HE0H;直接寻址,地址码;直接寻址,地址码指令都使累加器中内容加指令都使累加器中内容加1 1。但是寻址方式不同,。但是寻址方式不同,指令编码字节数也不同。指令编码字节数也不同。累加器的两种寻址方式累加器的两种寻址方式 常数操作数,编码在指令中常数操作数,编码在指令中(取指完成,操(取指完成,操作数立即得到,因此得名)作数立即得到,因此得名),立即数有前缀标,立即数有前缀标志志“#”#”。例例MOV AMOV A,#40H#40H 在表示法中,记为在表示法中,记为#data8#data8位立即数;位立即数;#datal616#datal616位立即数。位立即数。区别:区
9、别:MOV AMOV A,#3AH3AH;立即寻址;立即寻址 MOV AMOV A,3AH3AH;直接寻址;直接寻址立即寻址立即寻址(Immediate addressingImmediate addressing)存储器操作数,地址在寄存器中存储器操作数,地址在寄存器中寄存器名加前缀寄存器名加前缀“”标志标志例例 MOV A,R0寄存器间接寻址寄存器间接寻址(Registor Indirect Addressing)(Registor Indirect Addressing)间接寻址空间及范围间接寻址空间及范围存储空间存储空间/助记符助记符间址寄存器地址范围地址范围内部内部RAM RAM M
10、OVMOVRiRi00H-FFH00H-FFH扩展RAM MOVXRiRiDPTRDPTR00H-FFH00H-FFH0000-FFFFH扩展RAM页MOVXRiRi页地址由P2确定页内地址00H-FFH例:MOVA,R0例:MOVXDPTR,A需先向间址寄存器写入地址码基址寄存器基址寄存器:DPTR:DPTR或或PCPC(含(含1616位地址)位地址)变址寄存器变址寄存器:A:A(含(含8 8位地址)位地址)两寄存器内容相加,作为两寄存器内容相加,作为1616位存储器地址,在代码空间位存储器地址,在代码空间访问操作数(常数)或目标地址(转移)访问操作数(常数)或目标地址(转移)仅有仅有3 3
11、条这样的指令:条这样的指令:MOVMOVC C A A,A+DPTRA+DPTRMOVMOVC C A A,A+PCA+PCJMP JMP A+DPTRA+DPTR前两条为查表指令,后一条实现散转。前两条为查表指令,后一条实现散转。基址变址寻址基址变址寻址(Based Indexed Addressing)(Based Indexed Addressing)相对寻址相对寻址l相对寻址不用于操作数的寻址,只用于控制转移指令,相对寻址不用于操作数的寻址,只用于控制转移指令,是程序目标地址的形成方法之一。是程序目标地址的形成方法之一。l目标地址目标地址=当前指令地址当前指令地址+指令字节数指令字节数
12、+rell例:例:JZ 30H ;若若A=0,(,(PC)(PC)+02H+30H ;若若A0,则程序顺序执行,则程序顺序执行 指令中给出可寻址位的位地址,据此进行位操作。指令中给出可寻址位的位地址,据此进行位操作。位寻址位寻址范围包括:范围包括:(1 1)内部)内部RAMRAM中的可位寻址区中的可位寻址区字节地址字节地址20-2FH20-2FH,128128个位,位地址个位,位地址00-7FH00-7FH(2 2)SFRSFR的可寻址位的可寻址位字节地址能被字节地址能被8 8整除整除,位地址位地址80-FFH80-FFH例:例:MOVMOVC C,20H 20H 不是直接寻址注意不是直接寻址
13、注意例:例:SETBSETB F0F0位寻址(位寻址(Bit AddressingBit Addressing)l直接位地址表示法:如直接位地址表示法:如D5HD5H,表示,表示PSWPSW的的D5D5位;位;l点操作符法:点操作符法:PSW.520H.1 ACC.7;l位名称法位名称法:P C F0 P1.0 P3.5 T0;l伪指令自定义的字符名称。如伪指令自定义的字符名称。如USRF bit F0USRF bit F0以后的程序中就用以后的程序中就用USRFUSRF代替代替F0F0;问题:在程序行中,大致相同的助记符,其中的地址理问题:在程序行中,大致相同的助记符,其中的地址理解为字节地
14、址还是位地址?是否位操作?解为字节地址还是位地址?是否位操作?这主要看指令功能、上下文。这主要看指令功能、上下文。位地址表示法位地址表示法l内部数据传送指令(内部数据传送指令(15条)条)l外部数据传送指令(外部数据传送指令(7条)条)l堆栈操作指令(堆栈操作指令(2条)条)l数据交换指令(数据交换指令(4条)条)使用最频繁的一类指令使用最频繁的一类指令,通用格式:通用格式:MOV dstMOV dst,srcsrc 执行后,源操作数保持不变执行后,源操作数保持不变 基本不影响标志位,例外的是基本不影响标志位,例外的是奇偶标志位奇偶标志位P P以以PSW为为dst7.2 数据传送类指令MOV
15、A,#data ;(A)#dataMOV direct,#data ;(direct)#dataMOV Ri,#data ;(Ri)#dataMOV Rn,#data ;(Rn)#dataMOV DPTR,#datal6 ;(DPTR)#data161.立即数为源操作数的传送指令MOV A,direct;(A)(direct)MOV direct,A ;(direct)(A)MOV A,Ri ;(A)(Ri),i取取0或或1MOV Ri,A ;(Ri)(A),i取取0或或1MOV A,Rn ;(A)(Rn),n取取07MOV Rn,A ;(Rn)(A),n取取072 累加器A(Rn、RAM、S
16、FR)之间的数据传送MOV direct,direct;(direct)(direct)MOV direct,Ri ;(direct)(Ri),i取取0或或1MOV Ri,direct ;(Ri)(direct),i取取0或或1MOV direct,Rn ;(direct)(Rn)MOV Rn,direct ;(Rn)(direct),n取取073.RAM,Rn,SFR之间的数据传送字节交换指令字节交换指令XCH A,direct;(A)(direct)XCH A,Ri;(A)(Rt),i取取0或或1XCH A,Rn;(A)(Rn),n取取07半字节交换指令半字节交换指令XCHD A,Ri ;
17、(A3A0)(Ri)30)特点:特点:围绕围绕A设计的指令,设计的指令,操作数寻址方式有限制操作数寻址方式有限制4.字节、半字节交换指令设设(R0)=20H,(A)4EH,(20H)=85H 执行指令:执行指令:XCH A,R0,结果:结果:(A)85H,(20H)4EH,实现,实现A与与20H单单元内容互换。元内容互换。设设(R0)30H,(A)=46H,(30H)=85H执行指令执行指令:XCHD A,R0结果:结果:(30H)=86H,(A)=45H,实现了低,实现了低4位内位内容互换,而高容互换,而高4位内容不变。位内容不变。例7-1,7-2MOV指令数据传送指令数据传送5 栈操作指令
18、l进栈指令 PUSH direct ;(SP)(SP)+1,(SP)(direct)功能:堆栈指针SP加1,然后将直接地址direct单元的内容送到SP所指向的栈顶。l出栈指令 POP direct ;(direct)(SP),(SP)(SP)1 功能:将SP所指向的堆顶的内容送到直接地址direct指向的单元中,然后堆栈指针SP减1。例73在中断响应时,在中断响应时,(SP)26H,(DPTR)=0213H。执行下列指令。执行下列指令PUSH DPL PUSH DPH后后RAM地址地址27H,28H和栈指针和栈指针SP的内容。的内容。DPL和和DPH分别是分别是DPTR的低的低8位和高位和高
19、8位,并可以单独使用。另外,位,并可以单独使用。另外,本指令系统的堆栈只支持本指令系统的堆栈只支持8位操作,因此位操作,因此16位的位的DPTR需要保存到堆栈需要保存到堆栈就只能分两次实现。就只能分两次实现。执行执行PUSH DPL后:后:(SP)+1 (SP)27H,(DPL)=13H (27H)执行执行PUSH DPH后:后:(SP)+1 (SP)28H,(DPH)02H (28H);执行结果:执行结果:内部内部RAM(27H)13H,(28H)02H,(SP)28H正误正误PUSH指令的操作数只能是直接寻址,以下指令是合法的:PUSH ACC POP BPUSH 01H但下列两条指令是错
20、误的:PUSHAPUSHR1ACC、B、01H都是直接地址,而A和R1都是寄存器。例74设(SP)62H,内部RAM的60H62H中的内容分别为20H,23H,01H,执行下列指令分别有怎样的结果?POP DPH (SP)=(62H)01H (DPH)(SP)-1=62-1=61H (SP)POP DPL(SP)(61H)23H DPL(SP)161H160H SP POP SP(SP)-15FH SP(SP)(60H)20H SP结果:(DPTR)0123H,(SP)20H这里第3条指令特殊,其操作为:栈指针(SP)先减1为5FH,后装入由栈顶弹出的值,最后(SP)20H。1 外部外部RAM
21、的与累加器的与累加器A之间的数据传送之间的数据传送 MOVX A,DPTR MOVX DPTR,A MOVX A,Ri MOVX Ri,Al 前面两条指令可以访问外部前面两条指令可以访问外部RAM的整个的整个64K空空间,地址范围是间,地址范围是0000HFFFFH;l后两条指令可以访问外部后两条指令可以访问外部RAM任一页中任一页中00HFFH的的256个字节,页地址由个字节,页地址由P2口的锁存器决定。口的锁存器决定。外部数据传送指令2 2外部外部ROM向累加器向累加器A传送指令传送指令 这类指令共有两条变址寻址,单向传输,这类指令共有两条变址寻址,单向传输,因专用于查表,又称为查表指令,
22、指令的格式为因专用于查表,又称为查表指令,指令的格式为:MOVC A,A+PC MOVC A,A十十DPTR把把20H20H2FH2FH单元中的内容转移到单元中的内容转移到40H40H4FH4FH单元中单元中 MOV R0,#20H MOV R0,#20H ;设定源数据块指针;设定源数据块指针 MOV R1,#40H MOV R1,#40H ;设目的数据块指针;设目的数据块指针 MOV R2,#16 MOV R2,#16 ;数据块长度,;数据块长度,1010进制进制LOOPLOOP:MOV A,R0 MOV A,R0 ;取数;取数 MOV R1,AMOV R1,A ;存数;存数 INC R0
23、INC R0 ;指针调整;指针调整 INC R1 INC R1 ;指针调整;指针调整 DJNZDJNZ R2,LOOP R2,LOOP ;循环控制;循环控制LOOPLOOP是标号,标记循环的开始地址;是标号,标记循环的开始地址;DJNZDJNZ是循环控制指令,后面才讲到。是循环控制指令,后面才讲到。思考:如果题目要求变一下,把思考:如果题目要求变一下,把20H20H2FH2FH单元中的内单元中的内容转移到容转移到28H28H37H H单元中,应该怎样修改程序?单元中,应该怎样修改程序?例补例 MCS5l MCS5l有比较丰富的算术运算指令有比较丰富的算术运算指令:可以分为可以分为加法、减法、十
24、进制调整加法、减法、十进制调整和和乘除法乘除法四类。四类。除除加加1 1和和减减1 1指令指令外,其余指令均能影响外,其余指令均能影响PSWPSW标志特标志特征。征。7.3算术运算类指令l参加运算的两个数必须是参加运算的两个数必须是8位二进制数,结果也是位二进制数,结果也是一个一个8位二进制数,且对位二进制数,且对PSW中标志位产生影响。中标志位产生影响。l既可以把参加运算的两个操作数理解为无符号数既可以把参加运算的两个操作数理解为无符号数(0255),也可以把理解为带符号数的补码形式,也可以把理解为带符号数的补码形式(128127)。lCPU同时按无符号数运算法则影响同时按无符号数运算法则影
25、响PSW中的中的CY标标志位志位;按带符号数法则影响按带符号数法则影响PSW中的中的OV标志位。标志位。加减法指令的特点:加减法指令的特点:不带进位不带进位lADD A,#data ;(A)(A)+#datalADD A,direct ;(A)(A)+(direct)lADD A,Ri ;(A)(A)+(Ri)lADD A,Rn ;(A)(A)+(Rn)带进位加法指令带进位加法指令lADDC A,#data ;(A)(A)+#data+(C)lADDC A,direct ;(A)(A)+(dirct)+(C)lADDC A,Ri ;(A)(A)+(Ri)+(C)lADDC A,Rn ;(A)(
展开阅读全文