单片机原理 第三章 A1 数据传送类指令.ppt

上传人:啊飒飒 文档编号:11873549 上传时间:2021-10-08 格式:PPT 页数:19 大小:261KB
返回 下载 相关 举报
单片机原理 第三章 A1 数据传送类指令.ppt_第1页
第1页 / 共19页
单片机原理 第三章 A1 数据传送类指令.ppt_第2页
第2页 / 共19页
单片机原理 第三章 A1 数据传送类指令.ppt_第3页
第3页 / 共19页
单片机原理 第三章 A1 数据传送类指令.ppt_第4页
第4页 / 共19页
单片机原理 第三章 A1 数据传送类指令.ppt_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《单片机原理 第三章 A1 数据传送类指令.ppt》由会员分享,可在线阅读,更多相关《单片机原理 第三章 A1 数据传送类指令.ppt(19页珍藏版)》请在三一文库上搜索。

1、3.2 MCS-51指令及功能,3.2.1 数据传送指令(29条) 包括数据的传送、交换、堆栈数据的压入与弹出,是最基本、使用率最高的一类指令。 该类指令用到的助记符有MOV、MOVX、MOVC、XCH、XCHD、SWAP、PUSH、POP共八种。,一、 MOV类指令及功能(16条) 功能:从源操作数到目的操作数的数据传送。,3.2 MCS-51指令及功能,1、以累加器A为目的操作数的指令(4条) MOV A,Rn ;RnA, ;寄存器Rn的内容送到累加器A MOV A,direct ;(Direct)A, ;直接地址中的内容送A MOV A,Ri ;(Ri)A,Ri间址的内容送A MOV A

2、,#data ;dataA,立即数送A 例:若 R0=50H ,(50H)=38H 执行 MOV A ,R0 后 A=38H 执行 MOV A ,R0 后 A=50H,2、以寄存器Rn为目的操作数的指令(3条),MOV Rn,A ;ARn; ;累加器A中的内容送寄存器Rn MOV Rn,direct ;(Direct)Rn , ;直接地址中的内容送Rn MOV Rn,#daTa ;DataRn,立即数送Rn 例:MOV R7, 40H ; (40H) R7,3、以直接地址为目的操作数的指令(5条),MOV direct,A ;A(direct),A中的内容送入直 ;接地址中 MOV direc

3、t,Rn ;Rn(direct), ;Rn寄存器内容送入直接地址中 MOV direct,direct ;(direct)(direct), ;源操作数直接地址内容送入 ;目的操作数的直接地址中 MOV direct,Ri ;(Ri)(direct),Ri间址内容送入 ;直接地址中 MOV direct,#data ;data(direct),立即数送入直 ;接地址中,例 MOV 50H, 30H ;(30H) (50H) MOV P1, 30H ; (30H) P1 MOV SP, #40H ; SP=40H,4、以间接地址为目的操作数的指令(3条),MOV Ri,A ;A(Ri),A中内容

4、送到 ;Ri间址单元中 MOV Ri,direct ;(direct)(Ri),直接地址中 ;内容送入Ri间址单元中 MOV Ri,#data ;data(Ri), ;立即数送入Ri间址单元中 练习:编程把30H单元的内容送到40H单元中 方法一: MOV 40H,30H 方法二: MOV R0,#40H MOV R0,30H,5、十六位数据传送指令,MOV DPTR, #data ; datal6DPTR, ;16位常数送入数据指针DPTR中, ;高8位送入DPH,低8位送入DPL中 例 MOV DPTR,#2040H ;2040HDPTR 结果:DPH20H,DPL40H DPTR是片外R

5、AM地址指针,只有这一条指令是传送16位数据。,举例,例1 R0中有常数40H,而40H地址中有常数55H MOV A,R0 ; A40H,R0不变。 MOV A,R0 ; A55H 而不是40H, 指令的功能:把R0中内容为地址的单元中的数送入A,Rn中是40H也就是把40H地址中内容55H送入A 。 例2 若(40H)25H,(50H)33H MOV 40H,50H ;(50H)(40H) 结果:(40H)33H,50H地址中内容不变,仍为33H。,举例,例3 若A=40H,R130H M0V R1,A;A(R1) 结果:(30H)=40H,A与R1皆不变。 指令功能是把A中内容送入R1间

6、址的单元,即R1中内容为地址的单元。,二、 MOVC类指令及功能(2条)查表指令,MOVC A,A+PC ; PC+1PC,(A十PC)A MOVC A,A+DPTR ;(A+DPTR)A 功能:该类属查表指令,利用这两条指令很方便地查找放在程序 存储器中数据表格的内容。 用MOVC A,A+PC指令需注意两点: PC是执行完本条指令后的PC值,即PC等于本条指令地址加一。 A是修正值,等于查表指令和欲查数据相间隔字节数。A的范围是0255。 因此该指令只能查找本指令后的256B范围内的表格,故称为近程查表。,二、 MOVC类指令及功能(2条)查表指令,例1 程序 l000H MOV A,#0

7、3H ;03HA 1002H MOVC A,A+PC ;PC+1PC1003H ;(A+PC)(3H+1003H)A 数 1004H 02H 据 1005H 04H 表 1006H 06H 格 1007H 08H 程序执行结果:A06H,例2 程序 1000H MOV A,#03H ;03HA 1002H MOV DPTR,#3000H ;3000HDPTR l005H MOVC A,A+DPTR ; ;(A+DPTR)(03H+3000H) ;(3003H)A TAB: 3001H :0AH 3002H : 0BH 3003H : 0CH 3004H : 0DH 程序执行结果: A0CH,查

8、到了3003H单元中的数据。,用MOVC A,A+DPTR指令查表特点: A,DPTR都可以改变,因此可在64KB范围内查表,故称为远程查表。这条指令比前一条用之更方便。,三、 MOVX类指令(4条),累加器A与片外数据存储器传送指令 MOVX A,DPTR ;(DPTR)A, DPTR间址 ;单元内容送A MOVX DPTR,A ;A(DPTR),A中内容 ;送入DPTR之间址单元 MOVX A,Ri ;(Ri)A, ;Ri间址单元内容送A MOVX Ri,A ;A(R), ;A中内容送Ri间址单元 功能: 这四条指令专门用来与外部数据存储区传送数据。CPU与外部RAM传送数据时只能用间接寻

9、址方式。,例1 把外部数据存储单元2000H中的数据送到4000H单元中,设2000H中有数据30H。 程序 各条指令执行结果 MOV DPTR,#2000H ;2000HDPTR, ;DPTR2000H MOVX A,DPTR ;(DPTR)A即(2000H)A, ;A30H MOV DPTR,#4000H ;4000HDPTR, ;DPTR4000H MOVX DPTR,A ;A(DPTR),(4000H)30H 练习: 将片外RAM中2000H单元的数据送到片外50H单元,四、交换指令(5条),XCH A,Rn ;Rn与A内容交换 XCH A,direct ;直接地址内容与A内容交换 X

10、CH A,Ri ;Ri间址内容与A内容交换 XCHD A,Ri ;Ri间址内容低4位 ;与A中低4位内容交换 SWAP A ;A中高4位与低4位交换,例 若R030H,AF0H,(30H)46H XCH A,R0 结果:A30H,R0=F0H,R0与A内 容交换 XCH A,R0 结果:A=46H,(30H)F0H,R0中不变 XCHD A,R0 结果:AF6H,(30H)40H A与(30H)中低4位交换,高4位不变 SWAP A 结果: A0FH,A中高低4位互换,五、 堆栈操作指令(2条),PUSH direct ;SP+lSP,(direct)(SP) 直接地址内容压入堆栈栈顶 POP

11、 direct ;(SP)(direct),SP-1SP 堆栈栈顶内容弹出到直接地址 功能: 是把直接地址中的内容压入堆栈保存,或从堆栈中取出(弹出)数据到直接地址中。 注意: 堆栈是用户设定的内部RAM中的一块专用存储区,使用堆栈时一定先设堆栈指针。堆栈遵循后进先出的原则安排数据。压入数据时SP先加1,再压入;弹出时,先弹出数据后,SP再减1。,例 设堆栈指针为30H,为保护现场把A和Rn中的内容压入堆栈保护,然后根据需要再把两者弹出。设A中为50H, R1中为0lH。 程序 各条执行结果 MOV SP,#30H ;SP30H,设堆栈指针为30H PUSH A ;SP+lSP31H, ;A(SP)即A(31H),(3lH)50H PUSH R1 ;SP+1SP;SP=32H, ; 即R1(32H),(32H)01H POP R1 ;(SP) R1,即(32H)R1, ; R10lH,SP-1SP3lH POP A ;(SP)A,(31H)A, ; A50H,SP-1SP30H 从此例可以看出压入、弹出过程中SP的变化规律,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1