数据传送指令

 

数据传送指令共有29条,数据传送指令一般的操作是把源操作数传送到目的操作数,指令执行完成后,源操作数不变,目的操作数等于源操作数。如果要求在进行数据传送时,目的操作数不丢失,则不能用直接传送指令,而采用交换型的数据传送指令,数据传送指令不影响标志C,AC和OV,但可能会对奇偶标志P有影响。

以累加器A为目的操作数类指令(4条)

这4条指令的作用是把源操作数指向的内容送到累加器A。有直接、立即数、寄存器和寄存器间接寻址方式:

MOV  A,data     ;(data)→(A) 直接单元地址中的内容送到累加器A
MOV  A,#data    ;#data→(A) 立即数送到累加器A中
MOV  A,Rn      ;(Rn)→(A) Rn中的内容送到累加器A中
MOV  A,@Ri     ;((Ri))→(A) Ri内容指向的地址单元中的内容送到累加器A

以寄存器Rn为目的操作数的指令(3条)

这3条指令的功能是把源操作数指定的内容送到所选定的工作寄存器Rn中。有直接、立即和寄存器寻址方式:

MOV  Rn,data     ;(data)→(Rn) 直接寻址单元中的内容送到寄存器Rn中
MOV  Rn,#data    ;#data→(Rn) 立即数直接送到寄存器Rn中
MOV  Rn,A        ;(A)→(Rn) 累加器A中的内容送到寄存器Rn中
  

以直接地址为目的操作数的指令(5条)

这组指令的功能是把源操作数指定的内容送到由直接地址data所选定的片内RAM中。有直接、立即、寄存器和寄存器间接4种寻址方式:

MOV  data,data   ;(data)→(data) 直接地址单元中的内容送到直接地址单元
MOV  data,#data ;#data→(data)立即数送到直接地址单元
MOV  data,A     ;(A)→(data) 累加器A中的内容送到直接地址单元
MOV  data,Rn    ;(Rn)→(data)寄存器Rn中的内容送到直接地址单元
MOV  data,@Ri   ;((Ri))→(data) 寄存器Ri中的内容指定的地址单元中数据送到直接地址单元

以间接地址为目的操作数的指令(3条)

这组指令的功能是把源操作数指定的内容送到以Ri中的内容为地址的片内RAM中。有直接、立即和寄存器3种寻址方式:

MOV  @Ri,data    ;(data)→((Ri)) 直接地址单元中的内容送到以Ri中的内容为地址的RAM单元
MOV  @Ri,#data   ;#data→((Ri)) 立即数送到以Ri中的内容为地址的RAM单元
MOV  @Ri,A       ;(A)→((Ri)) 累加器A中的内容送到以Ri中的内容为地址的RAM单元

查表指令(2条)

这组指令的功能是对存放于程序存储器中的数据表格进行查找传送,使用变址寻址方式:

MOVC  A,@A+DPTR   ;((A))+(DPTR)→(A) 表格地址单元中的内容送到累加器A中
MOVC  A,@A+PC     ;((PC))+1→(A),((A))+(PC)→(A)表格地址单元中的内容送到累加器A中

累加器A与片外数据存储器RAM传送指令(4条)

这4条指令的作用是累加器A与片外RAM间的数据传送。使用寄存器寻址方式:

MOVX  @DPTR,A    ;(A)→((DPTR)) 累加器中的内容送到数据指针指向片外RAM地址中
MOVX  A, @DPTR   ;((DPTR))→(A) 数据指针指向片外RAM地址中的内容送到累加器A中
MOVX  A, @Ri     ;((Ri))→(A)寄存器Ri指向片外RAM地址中的内容送到累加器A中
MOVX  @Ri,A      ;(A)→((Ri)) 累加器中的内容送到寄存器Ri指向片外RAM地址中

堆栈操作类指令(2条)

这4类指令的作用是把直接寻址单元的内容传送到堆栈指针SP所指的单元中,以及把SP所指单元的内容送到直接寻址单元中。这类指令只有两条,下述的第一条常称为入栈操作指令,第二条称为出栈操作指令。需要指出的是,单片机开机复位后,(SP)默认为07H,但一般都需要重新赋值,设置新的SP首址。入栈的第一个数据必须存放于SP+1所指存储单元,故实际的堆栈底为SP+1所指的存储单元。

PUSH  data   ;(SP)+1→(SP),(data)→(SP) 堆栈指针首先加1,直接寻址单元中的数据送到堆栈指针SP所指的单元中
POP  data    ;(SP)→(data)(SP)-1→(SP),堆栈指针SP所指的单元数据送到直接寻址单元中,堆栈指针SP再进行减1操作

交换指令(5条)

这5条指令的功能是把累加器A中的内容与源操作数所指的数据相互交换。

XCH  A,Rn    ;(A)←→(Rn)累加器与工作寄存器Rn中的内容互换
XCH  A,@Ri   ;(A)←→((Ri))累加器与工作寄存器Ri所指的存储单元中的内容互换
XCH  A,data  ;(A)←→(data)累加器与直接地址单元中的内容互换
XCHD  A,@Ri  ;(A3-0)←→((Ri)3-0)累加器与工作寄存器Ri所指的存储单元中的内容低半字节互换
SWAP  A      ;(A3-0)←→(A7-4)累加器中的内容高低半字节互换

16位数据传送指令(1条)

这条指令的功能是把16位常数送入数据指针寄存器。

MOV  DPTR,#data16  ;#dataH→(DPH),#dataL→(DPL)16位常数的高8位送到DPH,低8位送到DPL

 

源文档 <http://www.cainiao8.com/embedded/51danpianji/zhiling/03shuju.html>

 

### 关于 UniApp 框架的推荐资源与教程 #### 1. **Uniapp 官方文档** 官方文档是最权威的学习资料之一,涵盖了从基础概念到高级特性的全方位讲解。对于初学者来说,这是了解 UniApp 架构和技术细节的最佳起点[^3]。 #### 2. **《Uniapp 从入门到精通:案例分析与最佳实践》** 该文章提供了系统的知识体系,帮助开发者掌握 Uniapp 的基础知识、实际应用以及开发过程中的最佳实践方法。它不仅适合新手快速上手,也能够为有经验的开发者提供深入的技术指导[^1]。 #### 3. **ThorUI-uniapp 开源项目教程** 这是一个专注于 UI 组件库设计和实现的教学材料,基于 ThorUI 提供了一系列实用的功能模块。通过学习此开源项目的具体实现方式,可以更好地理解如何高效构建美观且一致的应用界面[^2]。 #### 4. **跨平台开发利器:UniApp 全面解析与实践指南** 这篇文章按照章节形式详细阐述了 UniApp 的各个方面,包括但不限于其工作原理、技术栈介绍、开发环境配置等内容,并附带丰富的实例演示来辅助说明理论知识点。 以下是几个重要的主题摘选: - **核心特性解析**:解释了跨端运行机制、底层架构组成及其主要功能特点。 - **开发实践指南**:给出了具体的页面编写样例代码,展示了不同设备间 API 调用的方法论。 - **性能优化建议**:针对启动时间缩短、图形绘制效率提升等方面提出了可行策略。 ```javascript // 示例代码片段展示条件编译语法 export default { methods: { showPlatform() { console.log(process.env.UNI_PLATFORM); // 输出当前平台名称 #ifdef APP-PLUS console.log('Running on App'); #endif #ifdef H5 console.log('Running on Web'); #endif } } } ``` #### 5. **其他补充资源** 除了上述提到的内容外,还有许多在线课程视频可供选择,比如 Bilibili 上的一些免费系列讲座;另外 GitHub 和 GitCode 平台上也有不少优质的社区贡献作品值得借鉴研究。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值