51单片机数据传送指令

发布时间:2024-08-19  

51单片机数据传送指令

  数据传送指令共有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


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>