数据传送指令主要负责把数据、地址或立即数传送到寄存器或存储单元中。这类指令共有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版权所有
|