单片机原理及应用 第三章 80C51单片机的指系统.ppt





《单片机原理及应用 第三章 80C51单片机的指系统.ppt》由会员分享,可在线阅读,更多相关《单片机原理及应用 第三章 80C51单片机的指系统.ppt(118页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、单片机原理及应用单片机原理及应用北京化工大学信息科学与技术学院主讲教师:林伟国E-mail:E-mail:linwgmail.buct.edu,cnlinwgmail.buct.edu,cn第三章第三章 MCS-51指令系统指令系统本章重点本章重点寻址方式寻址方式指令格式指令格式操作结果及对标志位影响操作结果及对标志位影响第一节第一节 概述概述分类分类数据传送类指令数据传送类指令 29数学运算类指令数学运算类指令 24逻辑运算类指令逻辑运算类指令 24控制转移类指令控制转移类指令 17位操作指令位操作指令 17指令格式指令格式标号:操作码标号:操作码 (目的操作数),(源操作数)(目的操作数)
2、,(源操作数);注释;注释指令的符号地址指令的符号地址由字母打头的字母数字串组成,长度一由字母打头的字母数字串组成,长度一般不超过般不超过6个符号个符号指令操作的性质指令操作的性质用规定的汇编语言助记符表示指令操作的对象指令操作的对象按指令长度分类按指令长度分类单字节指令单字节指令双字节指令双字节指令三字节指令三字节指令指令执行时间指令执行时间12个振荡周期个振荡周期 64条条24个振荡周期个振荡周期 45条条48个振荡周期个振荡周期 2条条第二节第二节 MCS-51的寻址方式的寻址方式寻址方式就是确定操作数所在的位置(地址),寻址方式就是确定操作数所在的位置(地址),把操作数提取出来的方法。
3、把操作数提取出来的方法。基本寻址方式:基本寻址方式:1、寄存器寻址、寄存器寻址2、直接寻址、直接寻址3、寄存器间接寻址、寄存器间接寻址4、立即寻址、立即寻址5、基址寄存器加变址寄存器间接寻址、基址寄存器加变址寄存器间接寻址6、相对寻址、相对寻址7、位寻址、位寻址一、寄存器寻址一、寄存器寻址以通用寄存器的内容作为操作数,在指令的助以通用寄存器的内容作为操作数,在指令的助记符中直接以寄存器的名字表示操作数位置记符中直接以寄存器的名字表示操作数位置寻址范围:寻址范围:工作寄存器工作寄存器Rn(R0R7),),寄存器寄存器ACC(累加器累加器A),),B,DPTR,Cy例:例:MOV A,R0二、直接
4、寻址二、直接寻址指令中直接给出操作数地址指令中直接给出操作数地址寻址范围:寻址范围:1、内部数据、内部数据RAM的低的低128个字节单元个字节单元2、特殊功能寄存器、特殊功能寄存器3、位地址空间、位地址空间通用符号:通用符号:direct例:例:MOV A,3AHMOV A,P0MOV A,80H等价等价三、寄存器间接寻址方式三、寄存器间接寻址方式指令指定的寄存器内容为操作数地址指令指定的寄存器内容为操作数地址间址寄存器:间址寄存器:R0,R1,DPTR,SP寻址范围:寻址范围:1、内部、内部RAM的低的低128字节字节(00H7FH)R0,R1 (Ri,i=0,1)2、外部、外部RAM的的6
5、4KB(0000HFFFFH)DPTR,R0,R1例:例:MOV A,R0 设设:(R0)=30H (30H)=6FH操作结果:操作结果:(30H)AA=6FH如指令为如指令为 MOV A,R0 则则 A=30H四、立即寻址方式四、立即寻址方式指令直接给出操作数,操作数为指令直接给出操作数,操作数为8位或位或16位二进制数,称立即数位二进制数,称立即数寻址范围:寻址范围:程序存储器中的立即数程序存储器中的立即数通用符号:通用符号:#data (8位),位),#data16(16位)位)例:例:MOV A,#0FH MOV DPTR,#1000H五、变址间接寻址五、变址间接寻址基址寄存器内容加上
6、间址寄存器内容(地基址寄存器内容加上间址寄存器内容(地址偏移量)为有效地址址偏移量)为有效地址基址寄存器:基址寄存器:PC,DPTR变址寄存器:变址寄存器:A寻址范围:程序存储器寻址范围:程序存储器例:例:MOVC A,A+DPTR 设设 A=11H DPTR=02F1H操作数地址为操作数地址为 02F1H+11H=0302H操作:操作:(0302H)A六、相对寻址方式六、相对寻址方式以以PC当前值为基址,加上指令中给出的偏当前值为基址,加上指令中给出的偏移量(移量(del)形成有效的程序转移地址。形成有效的程序转移地址。仅用在控制转移类指令中仅用在控制转移类指令中转移范围:以转移范围:以PC
7、当前值为起始地址,相对当前值为起始地址,相对偏移在偏移在+127-128个字节单元之间。个字节单元之间。偏移量偏移量rel带符号数,为八位二进制补码带符号数,为八位二进制补码例:例:1005H:JC 80H执行过程:执行过程:读指令,完成后读指令,完成后 (PC)=(PC)+2如如 C=1,则则 (PC)=(PC)+rel 转移至转移至 1007H-80H=0F87H 单元单元如如C=0 则执行则执行1007H单元中的指令单元中的指令1005H 40H1006H 80H1007H 后向后向128个单元个单元前向前向127个单元个单元七、位寻址七、位寻址MCS-51设有独立的位处理器,位地址一般
8、用直设有独立的位处理器,位地址一般用直接位地址方式给出,可归入直接寻址方式接位地址方式给出,可归入直接寻址方式寻址范围:寻址范围:位寻址内部位寻址内部RAM 128位位可位寻址的可位寻址的SFR 82位位通用符号:通用符号:bit 指令中位地址的表示方式:指令中位地址的表示方式:1、直接地址(位地址)、直接地址(位地址)2、位名称、位名称3、第几单元第几位,寄存器名、第几单元第几位,寄存器名+位位4、用伪指令指定的符号地址、用伪指令指定的符号地址例:例:PSW中中F0(用户标志)可表示如下:用户标志)可表示如下:D5HF0PSW.5AF(AF EQU F0)第三节第三节 数据传送类指令数据传送
9、类指令按操作方式,分为三种:按操作方式,分为三种:数据传送数据传送数据交换数据交换栈操作栈操作一、普通传送类指令格式:MOV (目的操作数),(源操作数)操作码助记符操作码助记符操作:将源操作数单元内容,传送到目的操作数单元中,源操作数内容不变。不影响标志位Cy,AC和OV。操作数的组合关系操作数的组合关系1、立即数的传送、立即数的传送MOV A,#data(A)#dataMOV Rn,#data(Rn)#dataMOV Ri,#data(Ri)#dataMOV direct,#data(direct)#dataMOV DPTR,#data16(DPTR)#data说明:说明:a、MOV A,
10、#data将将8位立即数送入累加器位立即数送入累加器A中中例:例:MOV A,#80H 操作结果:操作结果:(A)=80Hb、MOV Rn,#data n=07将将8位立即数送入工作寄存器位立即数送入工作寄存器Rn中中例:例:MOV R4,#80H操作结果:操作结果:(R4)=80Hc、MOV Ri,#data将将8位立即数送入由位立即数送入由Ri指定的地址单元指定的地址单元中,中,i=0,1。Ri中的地址为中的地址为00H7FH(8051)00HFFH(8052)注:仅寻址内部注:仅寻址内部RAM,不能寻址不能寻址SFR例:例:MOV R0,#32H 设设 (R0)=70H,(70H)=11
11、H执行结果执行结果:(:(70H)=32Hd:MOV direct,#data将将8位立即数送入由位立即数送入由direct直接寻址的地直接寻址的地址单元中。址单元中。direct:00HFFH,8位二进制地址码位二进制地址码 寻址内部寻址内部RAM(00H7FH)及)及SFR例:例:MOV 70H,#70HMOV P0,#70HMOV 80H,#70He:MOV DPTR,#data唯一的唯一的16位数据传送指令,把位数据传送指令,把16位立即位立即数送入数送入DPTR中中例:例:MOV DPTR,#2034H执行结果:执行结果:(DPH)=20H (DPL)=34H2、内部数据存储器与累加
12、器、内部数据存储器与累加器A传送数据传送数据MOV A,direct(A)(direct)MOV direct,A(A)(direct)MOV A,Rn(A)(Rn)MOV Rn,A(A)(Rn)MOV A,Ri(A)(Ri)MOV Ri,A(Ri)(A)例:例:MOV R1,#82H MOV A,R1指令错误。因为指令错误。因为82H是是DPL的地址值,的地址值,对于对于SFR,不能使用间接寻址方式不能使用间接寻址方式正确指令:正确指令:MOV A,DPL 或或 MOV A,82H3、内部数据存储器中、内部数据存储器中Rn、SFR和片内数据和片内数据RAM之间的数据传送之间的数据传送MOV
13、direct,direct(direct目的目的)(direct源)源)MOV direct,Rn(direct)(Rn)MOV Rn,direct(direct)(Rn)MOV direct,Ri(direct)(Ri)MOV Ri,direct(Ri)(direct)例例1:设:设PSW中标志位中标志位RS1,RS0为为“11”,则选中第三组工作寄存器,则选中第三组工作寄存器MOV 40H,R0MOV 40H,18H等价等价用立即寻址指令为片内用立即寻址指令为片内RAM中中20H,25H和和P1口上置数口上置数例例2:MOV 20H,#25HMOV 25H,#10HMOV P1,#0CAH
14、执行结果执行结果(20H)=25H,(,(25H)=10H (P1)=CAH将以上状态作为初值,执行以下程序,将以上状态作为初值,执行以下程序,结果如何结果如何MOV R0,#20HMOV A,R0MOV R1,AMOV B,R1MOV R1,P1MOV P3,P1(R0)=20H(A)=(R0)=(20H)=25H(R1)=A(B)=(R1)=(25H)=10H(R1)=P1 (25H)=CAHP3=P1=CAH(A)=?(R1)=?(B)=?(25H)=?(P3)=?(P1)=?(20H)=?25H25H10HCAHCAHCAH25H二、外部数据存储器的数据传送指令二、外部数据存储器的数据
15、传送指令只能采用间接寻址方式,且只能与累加器只能采用间接寻址方式,且只能与累加器A进行进行数据传送数据传送格式:格式:MOVX (目的操作数),(源操作数)目的操作数),(源操作数)MOVX A,DPTR(A)(DPTR)MOVX DPTR,A(DPTR)(A)MOVX A,Ri(A)(Ri)MOVX Ri,A(Ri)(A)例:例:若片外数据存储单元中,(若片外数据存储单元中,(3007H)=60H执行:执行:MOV DPTR,#3007HMOVX A,DPTR结果:结果:(A)=60H使用使用Ri作间址寄存器,此时需用作间址寄存器,此时需用P2口输出高口输出高八位地址,应事先预置八位地址,应
16、事先预置P2,Ri的值的值以下程序功能与上例相同:以下程序功能与上例相同:MOV P2,#30HMOV R0,#07HMOVX A,R0三、程序存储器向累加器三、程序存储器向累加器A传送指令传送指令MOVCMOVC A,A+PC(PC)(PC)+1(A)(A)+(PC)MOVC A,A+DPTR(A)(A)+(DPTR))功能:把功能:把A中内容与基址寄存器(中内容与基址寄存器(PC,DPTR)内容相加,求得程序存储器某单元地址,再将该内容相加,求得程序存储器某单元地址,再将该地址单元内容送累加器地址单元内容送累加器A8位无符号整位无符号整数数说明:说明:1、以、以PC作为基址寄存器,因为作为
17、基址寄存器,因为PC值不能任意更值不能任意更改,所以查表范围为改,所以查表范围为PC当前值开始后的当前值开始后的256字节。字节。偏移量计算式:偏移量计算式:DIS=表首地址(该指令所在地址表首地址(该指令所在地址+1)2、以、以DPTR作为基址寄存器,因为作为基址寄存器,因为DPTR的内的内容可以通过赋值改变,使表格可以设置在容可以通过赋值改变,使表格可以设置在64KB程序存储器的任意地址空间。程序存储器的任意地址空间。3、以上两条指令中,表格长度均受到变址寄、以上两条指令中,表格长度均受到变址寄存器存器A的限制,不超过的限制,不超过256字节。字节。例例1:编制根据累加器:编制根据累加器A
18、中的数(中的数(09)查其平方)查其平方表的子程序。表的子程序。COUNT:PUSH DPH;保护保护DPTR内容内容 PUSH DPL;MOV DPTR,#TABLE ;赋表首地址给赋表首地址给DPTR MOVC A,A+DPTR ;根据根据A中内容查表中内容查表 POP DPL;恢复恢复DPTR内容内容 POP DPH RET;返回主程序返回主程序 ORG 1000HTABLE:DB 00 DB 01 DB 04 DB 09 DB 16 DB 25 DB 36 DB 49 DB 64 DB 81DB:伪指令,作用伪指令,作用是把其后的值存入是把其后的值存入由标号开始的连续由标号开始的连续单
19、元中单元中例例2:编子程序根据:编子程序根据A中二进制数查其中二进制数查其ASCII码码BITOASC:ADD A,#02HMOVC A,A+PCSJMP BARETDB 30H,31H,32H,33HDB 34H,35H,36H,37HDB 38H,39H,41H,42HDB 43H,44H,45H,46HRETTABLE:BARET:四、数据交换指令四、数据交换指令1、字节交换指令、字节交换指令XCH A,RnXCH A,directXCH A,Ri (A)(Rn)(A)(direct)(A)(Ri)例:设(例:设(R0)=20H,(,(A)=3FH,(,(20H)=75H执行指令:执行指
20、令:XCH A,R0执行结果执行结果:(:(A)=75H,(,(20H)=3FH2、半字节交换指令、半字节交换指令XCHD A,Ri (A30)(Ri)30)例:设(例:设(R1)=30H,(,(A)=67H,(,(30H)=84H执行指令:执行指令:XCHD A,R1执行结果执行结果:(:(A)=64H (30H)=87H3、累加器、累加器A高高4位与低位与低4位内容互换指令位内容互换指令SWAP A ;(;(A 03)(A 03)例:设(例:设(A)=0CAH执行指令:执行指令:SWAP A执行结果执行结果:(A)=0ACH5、堆栈操作类指令、堆栈操作类指令PUSH direct(SP)(
21、SP)+1(SP)(direct)POP direct(direct)(SP)(SP)(SP)-1要点:入栈操作,先执行要点:入栈操作,先执行SP+1,再入栈再入栈 出栈操作,先出栈,再执行出栈操作,先出栈,再执行SP-1例:在中断响应时,(例:在中断响应时,(SP)=09H,数据指针数据指针DPTR的内容为的内容为0123H执行以下指令:执行以下指令:PUSH DPLPUSH DPH(SP)+1,使(使(SP)=0AH(DPL)压入压入0AH单元单元(SP)+1,(,(SP)=0BH(DPH)压入压入0BH单元单元执行结果:执行结果:(0AH)=23H(0BH)=01H(SP)=0BH堆栈操
22、作需遵循先入后出,后入先出原则,堆栈操作需遵循先入后出,后入先出原则,才能保持原单元内容不变才能保持原单元内容不变例:设(例:设(DPTR)=0123HPUSH DPHPUSH DPL.POP DPLPOP DPH执行结果:执行结果:(DPTR)=0123H如执行:如执行:PUSH DPHPUSH DPLPOP DPHPOP DPL执行结果:执行结果:(DPTR)=2301H第四节第四节 算术运算类指令算术运算类指令类型:加,减,乘,除,增量、减量以及二类型:加,减,乘,除,增量、减量以及二十进制调整指令十进制调整指令ADD、ADDC、SUBB指令的执行将影响标指令的执行将影响标志位(志位(P
23、SW中的中的OV,Cy,AC及及P)一、加法指令一、加法指令ADD目的操作数为目的操作数为A内容,源操作数可以采用内容,源操作数可以采用4种寻址方式,结果存放于种寻址方式,结果存放于A中中ADD A,Rn (A)(A)+(Rn)ADD A,direct (A)(A)+(direct)ADD A,Ri (A)(A)+(Ri)ADD A,#data (A)(A)+#data运算均针对无符号二进制数进行,但结合运算均针对无符号二进制数进行,但结合OV标志可实现有符号数运算。结果将影标志可实现有符号数运算。结果将影响响OV,Cy,AC,P标志标志当最高位有进位,当最高位有进位,Cy=1位位3向位向位4
24、有进位,有进位,AC=1OV取决于取决于6、7两位的进位情况,同时两位的进位情况,同时有进位或无进位,则有进位或无进位,则OV=0;只有一位只有一位有进位,有进位,OV=1A中有偶数个中有偶数个1,P=0;否则,否则,P=1例:设(例:设(A)=0C3H,(,(R0)=0AAH 执行指令:执行指令:ADD A,R0 写出执行结果及对标志位影响写出执行结果及对标志位影响 (A)1 1 0 0 0 0 1 1+(R0)1 0 1 0 1 0 1 0 0 1 1 0 1 1 0 1C=1AC=0OV=1P=1(A)=6DH只对有符号数运算有只对有符号数运算有意义。两负数相加,意义。两负数相加,结果为
25、正数,溢出结果为正数,溢出二、带进位加法指令二、带进位加法指令ADDCADDC A,Rn ;(A)(A)+(C)+(Rn)ADDC A,direct;(A)(A)+(C)+(direct)ADDC A,Ri;(A)(A)+(C)+(Ri)ADDC A,#data;(A)(A)+(C)+(#data)常用于多字节加法常用于多字节加法例:设(例:设(A)=0C3H,(,(R0)=0AAH,C=1 执行指令:执行指令:ADDC A,R0 (A)1 1 0 0 0 0 1 1+(C)0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0+(R0)1 0 1 0 1 0 1 0 0 1 1 0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机原理及应用 第三章 80C51单片机的指系统 单片机 原理 应用 第三 80 C51 系统

限制150内