第3章-MCS-51单片机指系统-3.3.1数据传送类指.ppt

上传人:s****8 文档编号:66865902 上传时间:2022-12-21 格式:PPT 页数:29 大小:569KB
返回 下载 相关 举报
第3章-MCS-51单片机指系统-3.3.1数据传送类指.ppt_第1页
第1页 / 共29页
第3章-MCS-51单片机指系统-3.3.1数据传送类指.ppt_第2页
第2页 / 共29页
点击查看更多>>
资源描述

《第3章-MCS-51单片机指系统-3.3.1数据传送类指.ppt》由会员分享,可在线阅读,更多相关《第3章-MCS-51单片机指系统-3.3.1数据传送类指.ppt(29页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、3.3 MCS-513.3 MCS-51的指令集的指令集3.3.1 3.3.1 数据传送数据传送类指令类指令 MOVMOV /PUSHPUSH /POPPOP /XCHXCH /XCHD XCHD/SWAP SWAP MOVMOVX X/MOVC MOVC3.3 MCS-513.3 MCS-51的指令集的指令集p按功能,分按功能,分 5 5 类类n3.3.1 3.3.1 数据传送数据传送类指令类指令n3.3.2 3.3.2 算术运算类指令算术运算类指令n3.3.3 3.3.3 逻辑运算类指令逻辑运算类指令n3.3.4 3.3.4 控制转移指令控制转移指令n3.3.5 3.3.5 位操作类指令位

2、操作类指令 3.3.1 3.3.1 数据传送数据传送类指令类指令p按传送区域,分按传送区域,分3 3组组n1.1.内部内部RAMRAM数据传送数据传送p MOVMOV、PUSHPUSH/POPPOP、XCHXCH/XCHDXCHD、SWAPSWAPn2.2.访问访问外部外部RAMRAM或或I/OI/O的数据传送的数据传送p MOVMOVX Xn3.3.程序存储器(程序存储器(ROMROM)到)到累加器(累加器(A A)的传送的传送p MOVMOVC C所有的传送指令都所有的传送指令都所有的传送指令都所有的传送指令都不影响不影响不影响不影响标志位标志位标志位标志位CYCYCYCY、ACACACA

3、C和和和和OVOVOVOV涉及涉及涉及涉及累加器累加器A A A A的指令将的指令将的指令将的指令将影响影响影响影响奇偶标志位奇偶标志位奇偶标志位奇偶标志位P P P P数据传送类指令一览表数据传送类指令一览表 1.1.内部内部RAMRAM数据传送数据传送p(1)(1)以以累加器累加器A A为为目的目的操作数的指令操作数的指令p(2)(2)以以RnRn为为目的目的操作数的指令操作数的指令p(3)(3)以以直接地址直接地址为为目的目的操作数的指令操作数的指令p(4)(4)以以寄存器间接地址寄存器间接地址为为目的目的操作数的指令操作数的指令p(5)(5)1616位位数据传送指令数据传送指令p(6)

4、(6)堆栈堆栈操作指令操作指令p(7)(7)字节字节交换交换指令指令MOVMOVMOVXMOVXMOVCMOVCPUSH/POPPUSH/POPXCH/XCHD/SWAPXCH/XCHD/SWAPAcc 累加器累加器Direct 直接寻址直接寻址Ri 间接寻址间接寻址Rn 寄存器寄存器#data 立即数立即数(1)(1)以以累加器累加器A A为为目的目的操作数的指令操作数的指令p功能功能n把把源操作数源操作数的内容送入的内容送入累加器累加器A Ap格式格式nMOV A,MOV A,RnRn;(A)(;(A)(RnRn)nMOV A,directMOV A,direct;(A)(direct);

5、(A)(direct)nMOV A,MOV A,RiRi;(A)(;(A)(RnRn)nMOV A,MOV A,datadata;(A);(A)datadatap 例例 nMOV A,MOV A,10H10H;(A);(A)10H10H(2)(2)以以RnRn为为目的目的操作数的指令操作数的指令p功能功能n把把源操作数源操作数的内容送入的内容送入当前工作寄存器区当前工作寄存器区的的R0R0R7R7中的中的某一个某一个寄存器寄存器(由由 RS1RS1、RS0RS0 确定确定)p格式格式nMOV MOV RnRn,A,A;(A)(;(A)(RnRn)nMOV MOV RnRn,direct,dir

6、ect;(A)(direct);(A)(direct)nMOV MOV RnRn,datadata;(A);(A)datadatap注意注意nMOV MOV RnRn,RiRinMOV MOV RnRn,RnRnp 例例1 1 nMOV R0,AMOV R0,Ap若若RS1=0RS1=0、RS0=0 RS0=0,则,则(A)R0(A)R0(内部内部 RAMRAM H)H)p若若RS1=0RS1=0、RS0=1 RS0=1,则,则(A)R0(A)R0(内部内部 RAMRAM H)H)p 例例22已知:已知:(A)=60H,(R1)=10H,(R3)=45H,(45H)=37H(A)=60H,(R

7、1)=10H,(R3)=45H,(45H)=37H指令为:指令为:MOV R1,AMOV R1,A;(R1)(A);(R1)(A)MOV R2,45HMOV R2,45H;(R2)(30H);(R2)(30H)MOV R3,#33HMOV R3,#33H;(R3)#85H;(R3)#85H执行后:执行后:(R1)=(R1)=50H50H、(R2)=(R2)=37H37H、(R3)=(R3)=35H35H0008;(R1);(R1)(A)(A);(R2)(45H);(R2)(45H);(R3)#33H;(R3)#33H60H60H37H37H33H33H(3)(3)以以直接地址直接地址为目的操作

8、数的指令为目的操作数的指令p功能功能n把把源操作数源操作数送入由送入由直接地址直接地址指出的指出的存储单元存储单元p格式格式nMOV direct,AMOV direct,A;(direct)(A);(direct)(A)nMOV direct,MOV direct,RnRn;(direct)(;(direct)(RnRn)nMOV direct,directMOV direct,direct;(direct)(direct);(direct)(direct)nMOV direct,MOV direct,RiRi;(direct)(;(direct)(RnRn)nMOV direct,MOV

9、direct,datadata;(;(direct)direct)datadatap 例例 若若(R1)=51H(R1)=51H,(51H)=68H(51H)=68H指令为:指令为:MOV 22H,R1MOV 22H,R1;(40H)(72H);(40H)(72H)执行结果:执行结果:(22H)=68H(22H)=68H;(22H)(51H);(22H)(51H)(4)(4)以以寄存器寄存器间接间接地址地址为目的操作数的指令为目的操作数的指令p功能功能n把把源操作数源操作数送入由送入由R0R0或或R1R1指出的指出的存储单元存储单元p格式格式nMOV MOV RiRi,A,A;(;(RiRi)

10、(A)(A)nMOV MOV RiRi,direct,direct;(;(RiRi)(direct)(direct)nMOV MOV RiRi,datadata;(;(RiRi)datadatap 例例 若若 (R1)=30H,(A)=20H,(R1)=30H,(A)=20H,指令为:指令为:MOV R1,AMOV R1,A执行结果:执行结果:(R1)=_H(R1)=_H、(30H)=_H(30H)=_H20203030(5)(5)1616位位数据传送指令数据传送指令p功能功能n把把1616位常数送入位常数送入DPTRDPTRp高位高位DPHDPHp低位低位DPLDPLp格式格式nMOV DP

11、TRMOV DPTR,#data16#data16;(DPTR)#data16;(DPTR)#data16p 例例 nMOV DPTRMOV DPTR,#1342H#1342H;执行后执行后(DPTR)=1342H(DPTR)=1342H;(DPH)=13H;(DPH)=13H、(DPL)=24H(DPL)=24H(6)(6)堆栈堆栈操作指令操作指令p功能、格式功能、格式nPUSHPUSH进栈进栈pPUSH PUSH directdirect ;(SP)(SP)(SP)(SP)+1,(SP)(direct)1,(SP)(direct)nPOP POP 出栈出栈pPOP POP directdi

12、rect ;(direct)(SP),(SP)(SP)(direct)(SP),(SP)(SP)-1 1p注意:注意:n堆栈堆栈p是一个是一个“先进后出先进后出”的区域的区域p在在内内部部RAMRAM中中操作数操作数只能只能使用使用直接寻址直接寻址方式方式不能不能使用使用其他其他方式方式寄存器寄存器p 例例11正确指令正确指令错误指令错误指令PUSHPUSHACCACCPUSHPUSHA APUSHPUSH00H00HPUSHPUSHR0R0POPPOPACCACCPOPPOPA APOPPOP00H00HPOPPOPR0R0累加器累加器A A的直的直接地址接地址E0HE0HPUSHPUSHA

13、CCACC等价等价PUSHPUSH0E0H0E0H?例例2 2 进入进入中断服务中断服务子程序时的处理子程序时的处理p 现场保护现场保护n若保护若保护PSW、累加器、累加器A A、数据指针、数据指针DPTRDPTRp设保护前:设保护前:(PSW)=78H(PSW)=78H、(A)=56H(A)=56H、(DPTR)=1234H(DPTR)=1234Hp堆栈保护程序堆栈保护程序 PUSH PSWPUSH PSW PUSH PUSH ACCACC PUSH DPL PUSH DPL PUSH DPH PUSH DPH63H63H62H62H61H61H60H60H64H64HSP保护保护 前前SP

14、PUSH PSW PUSH PSW 后后SPPUSH ACC PUSH ACC 后后SPPUSH DPL PUSH DPL 后后SPPUSH DPH PUSH DPH 后后78H56H34H12HMCS-51 MCS-51 提供提供一个一个向上升向上升的堆栈;的堆栈;SPSP设置设置初值初值时时要充分考虑要充分考虑堆栈的深度堆栈的深度。p 现场恢复现场恢复n堆栈恢复程序堆栈恢复程序POP DPHPOP DPHPOP DPLPOP DPLPOP ACCPOP ACCPOP PSWPOP PSW63H63H62H62H61H61H60H60H64H64HSPPOP PSW POP PSW 后后SP

15、POP ACC POP ACC 后后SPPOP DPL POP DPL 后后SPPOP DPH POP DPH 后后SP恢复前恢复前78H56H34H12H设恢复前:设恢复前:(PSW)=0AH(PSW)=0AH(A)=0BH(A)=0BH(DPTR)=09ABCH(DPTR)=09ABCH(PSW)=0AH,(A)=0BH,(DPTR)=09ABCH(PSW)=0AH,(A)=0BH,(DPTR)=09ABCH(PSW)=0AH,(A)=0BH,(DPTR)=0(PSW)=0AH,(A)=0BH,(DPTR)=01212BCHBCH(PSW)=0AH,(A)=0BH,(DPTR)=012(P

16、SW)=0AH,(A)=0BH,(DPTR)=0123434H H(PSW)=0AH,(A)=(PSW)=0AH,(A)=5656H,(DPTR)=01234HH,(DPTR)=01234H(PSW)=(PSW)=7878H,(A)=56H,(DPTR)=01234HH,(A)=56H,(DPTR)=01234H(7)(7)字节字节交换交换指令指令p功能、格式功能、格式nXCH XCH A,RnRn;(A);(A)RnRnnXCH XCH A,direct,direct;(A)(direct);(A)(direct)nXCH XCH A,RiRi;(A)(;(A)(RiRi)nXCHD XCH

17、D A,RiRi;(A;(A3 30 0)(Ri)(Ri)3 30 0)nSWAP SWAP A;(A;(A3 30 0)(A)(A7 74 4)p 例例1 1 若(若(ACCACC)=71H=71H,(,(R0R0)=23H=23H,(,(23H23H)=76H=76Hn指令:指令:XCHD A XCHD A,R0 R0;(A(A3 30 0)(Ri)(Ri)3 30 0)n结果:结果:(A A)=_H=_H (R0R0)=_H=_H (23H23H)=_H=_Hp 例例2 2 若(若(A A)=092H=092Hn指令:指令:SWAP ASWAP An结果:结果:(A A)=_H=_H76

18、76232371712929小结:小结:片内片内(核内核内)数据传送指令数据传送指令课本课本P55P552.2.访问访问外部外部RAMRAM或或I/OI/O的数据传送的数据传送p功能功能nCPUCPU与与外部外部RAMRAM或或I/OI/O接口接口间传送数据间传送数据n必须:必须:寄存器间接寄存器间接寻址寻址,并通过,并通过累加器累加器A A传送传送p格式格式nMOVMOVX X A,DPTR,DPTR;(A)(DPTR);(A)(DPTR)nMOVMOVX X A,RiRi;(A)(;(A)(RiRi)nMOVMOVX X DPTR,DPTR,A;(DPTR)(A);(DPTR)(A)nMO

19、VMOVX X RiRi,A;(;(RiRi)(A)(A)输入输入输出输出注意:注意:p一个一个8 8位的字节位的字节传送,通过传送,通过ApDPTRDPTR间址(间址(1616位地址)位地址)n高高8 8位地址位地址 DPH P2DPH P2n低低8 8位地址位地址 DPL P0DPL P0pR0R0、R1R1间址间址n高高8 8位地址位地址 P2P2n低低8 8位地址位地址 R0R0或或R1 P0R1 P0p读读/写信号写信号n片外片外RAM RAM 或或 I/O AI/O A:pP3.7 P3.7 读信号:读信号:/RD/RDnA A 片外片外RAM RAM 或或 I/OI/O:pP3.

20、6 P3.6 写信号:写信号:/WR/WRP0由由ALEALE信号信号锁存锁存在地址锁存器在地址锁存器读读写写p 例例1 1 若(若(DPTRDPTR)=3000H=3000H,(3000H)=30H (3000H)=30H MOVX A,DPTRMOVX A,DPTR;A;A(DPTRDPTR)n结果:结果:(A)=30H(A)=30Hp 例例2 2 若(若(P2P2)=20H=20H,(,(R1R1)=48H=48H,(,(A A)=66H=66HMOVX R1,AMOVX R1,A;(R1R1)(A A)n结果:结果:(2048H2048H)=66H=66Hp 例例33试编程,将试编程,

21、将片外片外RAMRAM的的2000H2000H单元内容送入单元内容送入片外片外RAMRAM的的0200H0200H单元中。单元中。n解解MOVMOVDPTR,#2000HDPTR,#2000H;源地址送源地址送DPTRDPTRMOVXMOVXA A,DPTRDPTR;从外部从外部RAMRAM取数送取数送A AMOVMOVDPTRDPTR,#0200H#0200H;目的地址送目的地址送DPTRDPTRMOVXMOVXDPTR,ADPTR,A;A;A中内容送外部中内容送外部RAMRAM表基地址寄存器表基地址寄存器3.3.程序存储器(程序存储器(ROMROM)到累加器()到累加器(A A)的传送)的

22、传送p功能功能n查表指令查表指令p查找查找ROMROMROMROM中的中的常数常数表格表格,只只能读能读,不不能写能写p格式(格式(单字节指令单字节指令)nMOVC A,A+MOVC A,A+PC;(PCPC)(PCPC)1 1;(A A)(A A)()(PCPC)nMOVC A,A+MOVC A,A+DPTR;(PCPC)(PCPC)1 1;(A A)(A A)()(DPTRDPTR)p表格长度:表格长度:256B?p 例例1 1 若若 (PC)=1001H(PC)=1001H,(,(A A)=40H=40H,(,(1042H1042H)=56H =56H MOVC MOVCA A,A+PC

23、A+PC结果:结果:(A A)=_H=_H,(PC)=_H(PC)=_Hp 例例2 2 若若 (DPTRDPTR)=3201H=3201H,(,(A A)=47H=47H,(,(3248H3248H)=0FEH=0FEH MOVC MOVCA A,A+DPTRA+DPTR结果:结果:(A)=_H(A)=_H,(DPTR)=_H(DPTR)=_H 5656100210020FE0FE32013201p 例例33已知:累加器已知:累加器A A中有一个中有一个0 09 9范围内的数,使用查表范围内的数,使用查表指令编程查找出该数的平方值,设:查指令编程查找出该数的平方值,设:查 8 的平方值。的平方

24、值。01491625364964812000H2001H2002H2003H2004H2005H2006H2007H2008H2009Hn用用DPTR作为基址寄存器作为基址寄存器MOV DPTR,#_HMOV DPTR,#_HMOV A,#_HMOV A,#_HMOVC A,A+DPTRMOVC A,A+DPTRROMROM 中中 09 的平方表的平方表200020000808n用用PC作为基址寄存器作为基址寄存器 地址地址机器码机器码 源代码源代码 注释注释|1.1.1FFBH|24H DATA|1FFBH|24H DATA|ADD A,#dataADD A,#data|;(A)|;(A)(

25、A)+(A)+#data#data2.2.1FFDH|83H1FFDH|83H|MOVC A,A+PCMOVC A,A+PC|;(PC)|;(PC)(PC)+1(PC)+13.3.|;(A)|;(A)(A)+(PC)(A)+(PC)4.4.1FFEH|80FEH1FFEH|80FEH|SJMP$|SJMP$|;|;等待等待5.5.2000H|00H2000H|00H|DB 0|DB 0|6.6.2001H|01H2001H|01H|DB 1|DB 1|7.7.2002H|04H2002H|04H|DB 4|DB 4|8.8.|9.9.2009H|51H2009H|51H|DB 81|DB 81|本例中:本例中:#Data=#2H(=#2H(当前当前PC与数据表首间的距离与数据表首间的距离)A 中存放待查数据在中存放待查数据在表中的索引表中的索引小结小结p掌握指令掌握指令nMOVMOV、PUSHPUSH/POPPOP、XCHXCH/XCHDXCHD、SWAPSWAPnMOVXMOVXnMOVCMOVCp作业:作业:P943.4P943.4p预习预习nMCSMCS5151单片机指令系统单片机指令系统数据传送指令数据传送指令p算术、逻辑、控制、位算术、逻辑、控制、位

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁