数据传送指令大全(单片机系统指令的数据传送类指令)

本文目录
单片机系统指令的数据传送类指令
格式:MOV或MOVX或MOVC 《目的操作数》,《源操作数》
将源操作数复制给目的操作数,源操作数不变,而不是“
搬家”。数据传送类指令不影响标志位Cy、Ac和OV,影响奇偶标志位P。
一、以累加器为目的操作数的指令
MOV A, Rn ; (Rn)→A,n=0~7
MOV A, @Ri ; ((Ri))→A,i=0,1
MOV A, direct ;(direct)→A
MOV A, #data ; #data→A
二、以Rn为目的操作数的指令
MOV Rn, A ; (A)→Rn, n=0~7
MOV Rn, direct ;(direct)→Rn, n=0~7
MOV Rn, #data ; #data→Rn, n=0~7
三、以直接地址direct为目的操作数的指令
MOV direct, A ; (A)→direct
MOV direct, Rn ;(Rn)→direct, n=0~7
MOV direct1, direct2;
MOV direct, @Ri ;((Ri))→direct
MOV direct, #data ; #data→direct
注意:寄存器之间不可相互传送数据;
直接地址之间可相互传送数据。
直接寻址方式(直接给出操作数的单元地址)
寻址范围:
1、内部RAM的128个单元(00-7FH)
2、特殊功能寄存器(80-FFH) ,注意SFR区单元除了以单元地址的形式外,还可用寄存器符号的形式给出,如:
MOV A,80H 与 MOV A,P0是等价的。
直接寻址方式是访问特殊功能寄存器的唯一寻址方式
四、以寄存器间接地址为目的操作数的指令
MOV @Ri, A ;(A)→((Ri)),i=0,1
MOV @Ri, direct ;(direct)→((Ri))
MOV @Ri, #data ; #data→((Ri))
五、16位数传送指令
MOV DPTR, #data16 ; #data16→DPTR
唯一的16位数据的传送指令,
立即数的高8位送入DPH,
立即数的低8位送入DPL。
六、堆栈操作指令
内部RAM中可以设定一个后进先出(LIFO-Last In First Out)的区域称作堆栈,堆栈指针SP始终指向堆栈的
栈顶位置。
1、进栈指令 PUSH direct
先将栈指针SP加1,然后把direct中的内容送到SP指示的内部RAM单元中
2、出栈指令 POP direct
SP指示的栈顶(内部RAM单元)内容送入direct字节单元
中,栈指针SP减1
七、累加器A与外部数据存储器传送指令
MOVX A, @DPTR ;((DPTR))→A,读外部RAM/IO
MOVX A, @Ri ;((Ri))→A,读外部RAM/IO
MOVX@DPTR, A ;(A)→((DPTR)),写外部RAM/IO
MOVX@Ri, A ;(A)→((Ri)),写外部RAM/IO
功能:A与外部RAM存储器传送数据,RD*(P3.7)或WR*(P3.6)信号有效。
1、采用DPTR间接寻址时,高8位地址(DPH)由P2口输出,低8位地址(DPL)由P0口输出。
2、采用Ri(i=0,1)间接寻址时,可寻址片外256个单元的数据存储器。Ri内容(地址)由P0口输出。
3、数据均由P0口输出。
八、查表指令
用于读程序存储器(内外)中的表格数据的指令,仅两条
,均采用基址寄存器加变址寄存器间接寻址方式。
1、MOVC A,@A+PC
(1) 以PC作为基址寄存器,A为变址寄存器;
(2) 两寄存器的内容相加,得到一个16位的地址;
(3) 取出此地址中的数据,传送给ACC。
注意:PC中的内容为下一条指令的起始地址,PSEN信号有效(作用同RD*、WR*)。
2、MOVC A,@A+DPTR
(1) 以DPTR 作为基址寄存器,A为变址寄存器;
(2) 两寄存器的内容相加,得到一个16位的地址;
(3) 取出此地址中的数据,传送给ACC。
如 (DPTR)=8100H (A)=40H 执行指令
MOVC A, @A+DPTR
执行结果将程序存储器中8140H的内容送入A。
本指令的执行结果只和指针DPTR及累加器A的内容有关,
与该指令存放的地址及常数表格存放的地址无关,因此表格的
大小和位置可以在64K程序存储器中任意安排,一个表格可以
为各个程序块公用。
PLC数据传输指令
数据传送指令包括MOV(传送)、SMOV(BCD码移位传送)、CML(取反传送)、BMOV(数据块传送)、FMOV(多点传送)、XCH(数据交换)。这里主要介绍MOV(传送)指令。
传送指令MOV将源操作数据传送到指定目标,其指令代码为FNC12,源操作数为KnY、KnM、KnS、 T、C、D、V、Z。
如图13-1所示,,当X0为ON时,执行连续执行型指令,数据100被自动转换成二进制数且传送给D10,当X0变为OFF时,不执行指令,但数据保持不变;当X1为ON时,T0当前值被读出且传送给D20;当X2为ON时,数据100传送给D30,定时器T20的设定值被间接指定为10秒,当M0闭合时,T20开始计时;MOV(P)为脉冲执行型指令,当X5由OFF变为ON时指令执行一次,(D10)的数据传送给(D12),其它时刻不执行,当X5变为OFF时,指令不执行,但数据也不会发生变化;X3为ON时,(D1、D0)的数据传送给(D11、D10),当X4为ON时,将(C235)的当前值传送给(D21、D20)。注意:运算结果以32位输出的应用指令、32位二进制立即数及32位高速计数器当前值等数据的传送,必须使用(D)MOV或(D)MOV(P)指令。
如图13-2所示,可用MOV指令等效实现由X0~X3对Y0~Y3的顺序控制。
单片机汇编中能和通用寄存器B传输数据的指令有几种,比如mov A ,B,那么mov B,A这条语句
能和通用寄存器B传输数据的指令有几种:
MOV B, A
MOV B, R0 ;R0~R7
MOV B, @R0 ;R0, R1
MOV B, 30H ;00H~0FFH
反向传送,也都可以。
另外还有:
MOV B, #30H ;00~FF
数据传送指令的作用是什么
最基本的数据传送
一、通用数据传送指令
1.MOV指令
格式:MOV 目的操作数,源操作数
功能:将源操作数传送到目的操作数空间,源操作数不变。
使用要求:
① 源操作数和目的操作数不能同为存储器操作数,所有双操作数指令都应遵循这一语法要求。
② 立即数只能作为源操作数,不能作目的操作数。
③ CS不能作为目的操作数。
④ 不允许两个段寄存器之间直接传送信息。
⑤ 立即数不能直接送给段寄存器。
⑥ 目的操作数和源操作数的类型要匹配。
2.入栈指令PUSH和出栈指令POP
格式:PUSH 源操作数
POP 目的操作数
功能:PUSH将源操作数压入椎栈的栈顶;POP指令将栈顶的内容弹出送到目的操作数。
执行PUSH指令时,系统先将(SP)-2→SP,再将字操作数存储到SP指示的栈顶单元中。执行POP指令时,系统先将SP所指的栈顶的字操作数送至目标空间,再将(SP)+2→SP,指示当前栈顶单元。
3.交换指令XCHG
格式:XCHG 目的操作数,源操作数
功能:将目的操作数和源操作数的内容相互交换。
4.换码指令XLAT
格式:XLAT
功能:将一种代码转换成另一种代码。
XLAT指令通常用于字符和ASCII码转换。执行时,将表格的首地址预先存入到BX中,将表中数据距表首地址的位移量存到AL中,然后将根据BX和AL的内容找到的数送到AL中,即→AL。
二、累加器专用传送指令
1.输入指令IN
格式:IN 累加器,端口地址
功能:从I/O端口读入信息到累加器。
2. 输出指令OUT
格式:OUT 端口地址,累加器
功能:将累加器中信息输出到I/O端口。
三、地址传送指令
1.取有效地址指令LEA
格式:LEA 目的操作数,源操作数
功能:将源操作数的有效地址送到目的操作数中。
2.地址指针送寄存器和DS指令 LDS
格式:LDS 目的操作数,源操作数
功能:将源操作数指定的存储单元中的4个字节(双字)的地址指针(通常为段地址和偏移地址)传送到DS和目的操作数,高两字节送DS,低两字节送目的操作数。
四、标志传送指令:专用于对标志寄存器操作。
1.LAHF,将标志寄存器低8位送AH。
2.SAHF,将(AH)送标志寄存器低8位。
3.PUSHF,将标志寄存器的内容压入堆栈。
4.POPF,弹出栈顶的内容送标志寄存器。
单片机数据传送类指令
数据传送类指令: 1 MOV A,Rn 寄存器内容送入累加器 2 MOV A,direct 直接地址单元中的数据送入累加器 3 MOV A,@Ri 间接RAM 中的数据送入累加器 4 MOV A,#tata 立即数送入累加器 5 MOV Rn,A 累加器内容送入寄存器 6 MOV Rn,direct 直接地址单元中的数据送入寄存器 7 MOV Rn,#data 立即数送入寄存器 8 MOV direct,A 累加器内容送入直接地址单元 9 MOV direct,Rn 寄存器内容送入直接地址单元 10 MOV direct,direct 直接地址单元中的数据送入另一个直接地址单元 11 MOV direct,@Ri 间接RAM 中的数据送入直接地址单元 12 MOV direct,#data 立即数送.

更多文章:
如何用纯CSS实现接扎啤的特效(附源码)?如何使用纯CSS实现从按钮两侧滑入装饰元素的悬停特效(附源码)
2026年7月16日 02:15
adodb连接oracle数据库的server属性(如何用adodc和datagird连接数据库)
2025年11月10日 18:00
hadoop集群搭建公平(VMware搭建完全分布式Hadoop集群)
2025年10月3日 16:15
设计公司网站源码(别人给我们公司建的网站,我们没有源代码能自己设计吗)
2026年8月9日 01:15
汇编语言延时程序怎么写(用8086汇编语言,编写延时子程序)
2025年6月20日 23:30
ai基础教程入门视频(哪里有一些比较全面的ai教程,视频的,一定要全面)
2026年9月18日 22:30
网站在线客服系统怎么申请(企业自己做网站,怎么添加’在线客服系统呢)
2026年9月6日 22:15
equivalent英文(请问:等于,不等于,大于,小于,大于等于,小于等于的英文English是什么)
2025年10月21日 16:15
myeclipse注册码在哪里输入(myeclipse10,需要注册码怎么办)
2025年9月20日 12:30














