自动控制网—学习自动控制技术电气自动化技术从这里开始!
当前位置: 自动控制网 > 自动化 > 单片机 >

单片机数据传送指令

时间:2015-09-22 10:30来源:www.eadianqi.com 编辑:自动控制网
数据传送指令主要负责把数据、地址或立即数传送到寄存器或存储单元中。这类指令共有29条,可分为以下3大类:基本数据传送指令,数据交换指令,栈操作指令。 执行数据传送指令时,除以累加器A为目的操作数的指令会对奇偶标志位P有影响外,其余指令执行时均不

数据传送指令主要负责把数据、地址或立即数传送到寄存器或存储单元中。这类指令共有29条,可分为以下3大类:基本数据传送指令,数据交换指令,栈操作指令。

自动控制网www.eadianqi.com版权所有

执行数据传送指令时,除以累加器A为目的操作数的指令会对奇偶标志位P有影响外,其余指令执行时均不会影响任何标志位。 本文来自www.eadianqi.com

1. 基本数据传送指令

自动控制网www.eadianqi.com版权所有

根据数据取自何方和传到何方,MOV指令有着许多不同的形式。 自动控制网www.eadianqi.com版权所有

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

本文来自www.eadianqi.com

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

自动控制网www.eadianqi.com版权所有

MOV  A, #data  ; data→(A)  自动控制网www.eadianqi.com版权所有

MOV  A, direct  ;(direct)→(A) 

本文来自www.eadianqi.com

MOV  A, Ri   ;(Ri)→(A)  本文来自www.eadianqi.com

MOV  A, @Rj  ;((Rj))→(A)  自动控制网www.eadianqi.com版权所有

(2) 以寄存器Ri为目的操作数的指令 本文来自www.eadianqi.com

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

自动控制网www.eadianqi.com版权所有

(3)以直接地址为目的操作数的指令 自动控制网www.eadianqi.com版权所有

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

本文来自www.eadianqi.com

(4)以间接地址为目的操作数的指令 本文来自www.eadianqi.com

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

自动控制网www.eadianqi.com版权所有

(5) 查表指令

本文来自www.eadianqi.com

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

MOVC  A, @A+DPTR   ;((A)+(DPTR))→(A)

本文来自www.eadianqi.com

MOVC  A, @A+PC    ;((PC))+1→(PC),((A)+(PC))→(A) 

自动控制网www.eadianqi.com版权所有

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

本文来自www.eadianqi.com

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

自动控制网www.eadianqi.com版权所有

 MOVX  @DPTR, A    ;(A)→((DPTR)) 本文来自www.eadianqi.com

 MOVX  A,  @DPTR    ;((DPTR))→(A) 自动控制网www.eadianqi.com版权所有

 MOVX  A,  @Rj    ;((Rj))→(A) 本文来自www.eadianqi.com

 MOVX  @Rj,A     ;(A)→((Rj))

本文来自www.eadianqi.com

(7)16位数据传送指令

本文来自www.eadianqi.com

这条指令的功能是把16位常数送入数据指针寄存器。 自动控制网www.eadianqi.com版权所有

MOV  DPTR, #data16   ; dataH→(DPH),dataL→(DPL) 自动控制网www.eadianqi.com版权所有

2. 交换指令

本文来自www.eadianqi.com

MOV指令主要完成从一处到另一处的拷贝,XCH指令则可实现数据的双向传送。所有的操作都涉及到累加器A,可以把把累加器A中的内容与源操作数所指的数据相互交换。

本文来自www.eadianqi.com

XCH  A, direct   ;(A)←→(direct) 自动控制网www.eadianqi.com版权所有

XCH  A, Ri  ;(A)←→(Ri)

本文来自www.eadianqi.com

XCH  A, @Rj    ;(A)←→((Rj))

本文来自www.eadianqi.com

XCHD  A, @Rj   ;(A3-0)←→((Rj)3-0) 本文来自www.eadianqi.com

SWAP  A       ;(A3-0)←→(A7-4)

本文来自www.eadianqi.com

3. 入栈/出栈指令

本文来自www.eadianqi.com

这类指令的作用是把直接寻址单元的内容传送到堆栈指针SP所指的单元中,以及把SP所指单元的内容送到直接寻址单元中。 本文来自www.eadianqi.com

⑴ PUSH指令 自动控制网www.eadianqi.com版权所有

堆栈的入栈指令,该指令可以把某片内RAM单元(低128字节)或某专用寄存器的内容入栈。

自动控制网www.eadianqi.com版权所有

PUSH direct      ;(SP)+1→(SP),(direct)→(SP)

本文来自www.eadianqi.com

⑵ POP指令 本文来自www.eadianqi.com

堆栈的出栈指令,该指令用于恢复某片内RAM单元(低128字节)或某专用寄存器的内容。 自动控制网www.eadianqi.com版权所有

POP direct      ;(SP)→(direct),(SP)-1→(SP)

自动控制网www.eadianqi.com版权所有

本文已影响