zoukankan      html  css  js  c++  java
  • 51单片机数据传送指令

    51单片机数据传送指令

    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
  • 相关阅读:
    利用dockerfile定制镜像
    发布Docker 镜像到dockerhub
    Docker 停止容器
    133. Clone Graph
    132. Palindrome Partitioning II
    131. Palindrome Partitioning
    130. Surrounded Regions
    129. Sum Root to Leaf Numbers
    128. Longest Consecutive Sequence
    127. Word Ladder
  • 原文地址:https://www.cnblogs.com/chenmingjun/p/8577175.html
Copyright © 2011-2022 走看看