数据传送指令课件.ppt

上传人:春哥&#****71; 文档编号:15234182 上传时间:2022-05-11 格式:PPT 页数:26 大小:5.64MB
返回 下载 相关 举报
数据传送指令课件.ppt_第1页
第1页 / 共26页
数据传送指令课件.ppt_第2页
第2页 / 共26页
点击查看更多>>
资源描述

《数据传送指令课件.ppt》由会员分享,可在线阅读,更多相关《数据传送指令课件.ppt(26页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、3.3 MCS-51单片机的指令系统按指令功能可将按指令功能可将80C51分为以下五类分为以下五类: 数据传送类数据传送类 算术运算类算术运算类 逻辑运算与循环类逻辑运算与循环类 控制转移类控制转移类 位操作类位操作类3.3.1 数据传送类指令 数据传送类指令共数据传送类指令共28条,功能是将源操作数条,功能是将源操作数送到目的处。送到目的处。 指令执行后,源操作数不变,目的操作数被指令执行后,源操作数不变,目的操作数被源操作数取代。一般不影响源操作数取代。一般不影响PSW的标志位。的标志位。 数据传送类指令用到的助记符有数据传送类指令用到的助记符有MOV、MOVX、MOVC、XCH、XCHD

2、、SWAP、PUSH、POP8种。种。 数据传送指令是一种最基本最常用的操作数据传送指令是一种最基本最常用的操作,在在通常的程序中占有极大的比例。通常的程序中占有极大的比例。 可以进行如下分类:可以进行如下分类:片内数据传送指令:片内数据传送指令: MOV 栈操作指令栈操作指令 PUSH POP 交换指令交换指令 XCH XCHD SWAP片外程序存贮器传送指令:片外程序存贮器传送指令:MOVC片外数据存贮器传送指令:片外数据存贮器传送指令:MOVX 数据传送指令操作域示意图如下:数据传送指令操作域示意图如下: 片外片外程序程序存储器存储器ROMEPROM特殊功能特殊功能寄存器寄存器SFR片内

3、片内RAM128字节字节片外片外数据数据存储器存储器RAMMOVCMOVXMOV PUSHPOPXCHXCHD 数据传送指令操作域示意图数据传送指令操作域示意图1以A为目的操作数MOV A,Rn;A( Rn) ,n=07 MOV A,direct;A(direct)MOV A,Ri ;A(Ri) ,i=0、1 MOV A,#data;A data上述指令是将源操作数指定的内容送到累加器A中。上述操作只影响PSW的P标志位。2以以Rn为目的操作数为目的操作数MOV RnMOV Rn,A A;Rn (A)Rn (A)MOV RnMOV Rn,directdirect;Rn Rn (directdi

4、rect)MOV RnMOV Rn,#data#data;Rn #dataRn #data上述指令是将源操作数指定的内容送到当前工作寄存上述指令是将源操作数指定的内容送到当前工作寄存器组器组R0R7R0R7中的某个寄存器。中的某个寄存器。 例如:若(例如:若(A A)=68H=68H,(,(R5R5)=3AH=3AH,(,(40H40H)=F8H=F8H,执行以下每条指令后,执行以下每条指令后,R5R5中的内容分别为中的内容分别为: : MOV R5 MOV R5,#0A3H#0A3H; (R5R5)=A3H =A3H MOV R5 MOV R5,40H40H; (R5R5)=F8H=F8H

5、MOV R5 MOV R5,A A; (R5R5)=68H=68H 注:注:80518051指令系统中没有指令系统中没有“MOV Rn,Rn”MOV Rn,Rn”传送指令。传送指令。3以直接地址为目的操作数MOV direct ,A; direct (A)MOV direct , Rn; direct ( Rn )MOV direct , direct ;目的;目的direct (源(源direct )MOV direct ,Ri ; direct ((Ri)) MOV direct ,#data ; direct #data 上述指令是将源操作数指定的内容送到由直接地址上述指令是将源操作数指

6、定的内容送到由直接地址direct所指出的片内存储单元中所指出的片内存储单元中 。应用举例应用举例MOV P1, #0FEH ; 11111110B可以使可以使P1.0上的发光二极管点亮上的发光二极管点亮MOV P1, #0F0H ; 11110000B可以使可以使P1口上的上面口上的上面4个发光二个发光二极管点亮极管点亮P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 5v 例如:若(例如:若(A)=68H,(,(R1)=40H,(40H)=F8H,执行以下每条指令后,片,执行以下每条指令后,片内内RAM字节单元字节单元60H中的内容分别为中的内容分别为: MO

7、V 60H,#0A3H ; (60H)=A3H MOV 60H,40H ; (60H)=F8H MOV 60H,A ; (60H)=68H MOV 60H,R1 ; (60H)=40H MOV 60H,R1 ; (60H)=F8H注注:以上各条指令视为互相独立。以上各条指令视为互相独立。4以间接地址为目的操作数以间接地址为目的操作数MOV Ri,A ;(;(Ri) A,i=0、1 MOV Ri,direct ;(;(Ri) (direct)MOV Ri,#data ;(;(Ri) #data例如:设(例如:设(30H)=6FH,(R1)=40H, MOV R1,30H 结果结果30H单元中数据

8、取出送入单元中数据取出送入R1间接寻址间接寻址的的40H单元,(单元,(40H)=6FH。内部内部RAM间数据传送路径间数据传送路径A累加器累加器Direct直接寻址直接寻址Rn寄存器寄存器#data立即数立即数Ri间接寻址间接寻址5以DPTR为目的操作数MOV DPTR,#data16 ;DPTR #data16例如例如 执行执行 MOV DPTR,#2000H 后,后,(DPTR)= 2000H。 DPH 20H, DPL 00H这是唯一的这是唯一的16位立即数传送指令,把位立即数传送指令,把16位常位常数送入数送入DPTR,通常用于把,通常用于把16位地址送入位地址送入DPTR。所以。所

9、以DPTR又称为地址指针又称为地址指针.6访问外部数据RAM 在在8051指令系统中,访问片外指令系统中,访问片外RAM只能用寄存器只能用寄存器间接寻址,与累加器间接寻址,与累加器A配合,共四条指令。配合,共四条指令。 MOVX A,Ri;A (Ri),i=0、1 MOVX Ri,A;(;(Ri) A 寻址范围是片外寻址范围是片外256B RAM。 MOVX A,DPTR;A (DPTR) MOVX DPTR,A;(;(DPTR) A 寻址范围是片外寻址范围是片外64KBRAM。 例如例如: 若(若(R0)=26H,(,(0026H)=69H,则执行指令则执行指令“MOVX A,R0”后,后,

10、把片外数据存储器把片外数据存储器0026H单元中的数据单元中的数据69H送入累加器送入累加器A中;中; 若(若(DPTR)=5620H,(,(A)=98H,则执行指令则执行指令“MOVX DPTR,A”后,后,就将就将98H送入了片外数据存储器地址为送入了片外数据存储器地址为5620H的存储单元中。的存储单元中。 7读ROM指令(查表指令)注:数据表格放在注:数据表格放在程序存储器程序存储器中(只有中(只有两条两条指指令)。令)。近程查表指令(近程查表指令(256B)MOVC A,A+PC;A (A)+(PC)只能查找指令所在地址向前只能查找指令所在地址向前128B或向后或向后127B范范围内

11、的常数或代码。围内的常数或代码。远程查表指令(远程查表指令(64KB)MOVC A,A+DPTR;A (A)+(DPTR)查表范围可达查表范围可达ROM的的64KB空间。空间。例如:在程序存储器中,数据内容为例如:在程序存储器中,数据内容为 1010H:02H 1011H:04H 1012H:06H 1013H:08H执行程序执行程序 1000H:MOV A,#0DH; A #0DH ,偏移量,偏移量 1002H: MOVC A, A+PC; A (0DH+1003H) 1003H:MOV R0,A ; R0 (A) 结果为(结果为(A)=02H,(,(R0)=02H,(,(PC)=1004H

12、 又如:在程序存储器中,数据内容为又如:在程序存储器中,数据内容为 7010H:02H 7011H:04H 7012H:06H 7013H:08H执行程序执行程序 1000H:MOV A,#10H; A #10H ,偏移量,偏移量 1002H: MOV DPTR,#7000H; DPTR 7000H 1003H:MOVC A, A+DPTR; A (10H+7000H) 结果为(结果为(A)=02H8数据交换l l 字节交换字节交换XCH A,Rn;A Rn,n=07 XCH A ,direct ;A(direct)XCH A,Ri;A(Ri),i=0、1 l l 半字节交换半字节交换XCHD

13、 A,Ri ;A03(Ri)03 低低4位互换,高位互换,高4位不变。位不变。SWAP A;A A0 03 3AA4 47 7(高低两半字节交换)(高低两半字节交换)注:上述交换指令的目的操作数均为累加器注:上述交换指令的目的操作数均为累加器A。 例:若(例:若(R0)=50H,(,(A)=3DH,(,(50H)=89H,执行指令执行指令“XCH A,R0”后,后,(A)=89H,(,(50H)=3DH。 例:若(例:若(R0)=50H,(,(A)=3DH,(,(50H)=89H,执行指令执行指令“XCHD A,R0”后,后,(A)=39H,(,(50H)=8DH。 例:若(例:若(A)=3D

14、H,执行指令,执行指令“SWAP A”后,后,(A)=D3H。9堆栈操作堆栈操作 所谓堆栈是在片内所谓堆栈是在片内RAM中按中按“先进后出先进后出”或或“后后进先出进先出”原则设置的专用存储区。数据的进栈出原则设置的专用存储区。数据的进栈出栈由指针栈由指针SP统一管理。统一管理。 堆栈的操作有如下两条专用指令:堆栈的操作有如下两条专用指令: PUSH direct;SP(SP)+1,(,(SP)(direct) POP direct;direct(SP)),SP (SP)-1 PUSH是进栈(或称为压入操作)指令。指令执是进栈(或称为压入操作)指令。指令执行过程如图行过程如图3-7所示。所示。

15、 POP是是出栈(或称为弹出操作)指令。指令执行出栈(或称为弹出操作)指令。指令执行过程如图过程如图3-8所示所示例如:指令例如:指令PUSH 60H,(,(60H)=26H,具体执行过程:,具体执行过程: 先将堆栈指针先将堆栈指针SP的内容的内容0FH加加1,指向原栈顶上面的一个,指向原栈顶上面的一个单元,此时单元,此时(SP)=10H; 然后将指令指定的直接寻址单元然后将指令指定的直接寻址单元60H中的数据中的数据26H送到新送到新栈顶单元中。栈顶单元中。 例如:指令例如:指令POP 50H,具体执行过程:,具体执行过程: 先将先将SP所指单元所指单元0FH(栈顶地址)中的数据(栈顶地址)

16、中的数据49H弹出,弹出,送到指定的片内送到指定的片内RAM单元单元50H,(,(50H)=49H; 然后然后SP(SP)-1,(SP)=0EH,SP指向新的栈顶单元。指向新的栈顶单元。 使用数据传送类指令注意事项:使用数据传送类指令注意事项:(1)一条指令中不能同时出现两个工作寄存器。如以下指令)一条指令中不能同时出现两个工作寄存器。如以下指令非法:非法:MOV R1,R2 ; MOV R2,R0(2)访问)访问SFR只能直接寻址(个别也可用寄存器寻址),不只能直接寻址(个别也可用寄存器寻址),不能用寄存器间接寻址。能用寄存器间接寻址。如用以下指令访问如用以下指令访问P0口无效(口无效(P0

17、口的直接地址为口的直接地址为80H):):MOV R0,#80H ; MOV A,R0(3)片外数据存储器、程序存储器不能直接寻址。下列为非)片外数据存储器、程序存储器不能直接寻址。下列为非法指令:法指令: MOVX A,1000H ; MOVX 1100H,1200H MOVC A,2000H(4)只有指令表中存在的指令形式才有对应的机器指令代码,)只有指令表中存在的指令形式才有对应的机器指令代码,CPU才能执行。编程时,不能随意发明创造指令,如以下才能执行。编程时,不能随意发明创造指令,如以下指令非法:指令非法:XCH 50H,52H ; MOV 49H,R2 ; MOVX DPTR ,5

18、0H 【例】【例】 将片内将片内RAM 30H单元与单元与40H单元中的内容互换。单元中的内容互换。方法方法1(直接地址传送(直接地址传送法):法): MOV31H,30H MOV30H,40H MOV40H,31H SJMP$方法方法2(间接地址传送(间接地址传送法):法): MOVR0,#40H MOVR1,#30H MOVA,R0 MOVB,R1 MOVR1,A MOVR0,B SJMP$方法方法3(字节交换传送(字节交换传送法):法): MOVA,30H XCH A,40H MOV30H,A SJMP$方法方法4(堆栈传送法):(堆栈传送法): PUSH30H PUSH40H POP30H POP40H SJMP$ 谢 谢 大 家 再 见!

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

当前位置:首页 > 教育专区 > 小学资料

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

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com