<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 51手記之指令篇

          51手記之指令篇

          作者: 時間:2016-11-29 來源:網絡 收藏
          分類指令
          在介紹各條分類指令之前,將指令中的操作數及注釋中的符號說明如下。
          Rn:當前指定的工作寄存器組中的Ro-R7(其中n=0,1,2,…,7)。
          Ri:當前指定的工作寄存器組中的RO,R1(其中i=0,1)。
          (Ri):Ri間址尋址指定的地址單元。
          ((Ri)):Ri間址尋址指定地址單元中的內容。
          dir:8位直接字節(jié)地址(在片內RAM和SFR存儲空間中)。
          #data8:8位立即數。
          #datal6:16位立即數。
          addrl6:16位地址值。
          addrll:11位地址值。
          bit:位地址(在位地址空間中)。
          rel:相對偏移量(一字節(jié)補碼數)。
          下面介紹各條分類指令的主要功能和操作,詳細的指令操作說明及機器碼形式可見附錄。
          一、數據傳送與交換類指令
          共有28條指令,包括以A,Rn,DPTR,直接地址單元,間接地址單元為目的的操作數的指令;訪問外部RAM的指令;讀程序存儲器的指令;數據交換指令以及準棧操作指令。
          1.以A為目的的操作數
          MOVA,Rn; A="Rn"
          MOVA,dir; A=(dir)
          MOVA,@Ri; A=((Ri))
          MOVA,#data; A="#data"
          2.以Rn為目的的操作數
          MOVRn,A; Rn="A"
          MOVRn,dir; Rn=(dir)
          MOVRn,#data; Rn="#data"
          3.以DPTR為目的的操作數
          MOVDPTR,#data16;DPTR=#data16
          4.以直接地址為目的的操作數
          MOVdir,A; dir="A"
          MOVdir,Rn; dir="Rn"
          MOVdir,dir’; dir=(dir’)
          MOVA,@Ri; dir=((Ri))
          MOVA,#data; dir="#data"
          5.以間接地址為目的的操作數
          MOV@Ri,A; (Ri)=A
          MOV@Ri,dir; (Ri)=dir
          MOV@Ri,#data; (Ri)=#data
          6.訪問外部數據RAM
          MOVXA,@DPTR;A=((DPTR))
          MOVXA,@Ri;A=((P2 Ri))
          MOVX@DPTR,A;(DPTR)=A
          MOVXRi,A;(P2 Ri)=A
          例1:DPTR=2000H,外部RAM(2000H)=18H,指令MOVX A,@DPTR執(zhí)行后,A=18H。
          例2:P2=10H,R1=50H,A=64H,指令MOVX @R1,A執(zhí)行后,外部RAM(1050H)=64H。
          7.讀程序存儲器
          MOVCA,@A+DPTR;A=((A+DPTR))
          MOVCA,@A+PC;A=((A+PC))
          8.堆棧操作
          PUSH dir;SP十1-6P,(dir)一(SP)
          POP dir;((SP))一dir,SP-1--P,
          例1:SP=07H,(35H)=55H,指令PUSH 35H執(zhí)行后,55H送入08H地址單元,SP=08H。
          例2:SP=13H,(13H)= 1FH,指令POP 25H執(zhí)行后,1FH壓入25H地址單元,SP此時為12H。

          二、算術運算類指令
          共有24條指令,主要包括加、減、乘、除、增量、減量和十進制調整等指令。其中,大多數指令都同時以A為源操作數之一和目的操作數。
          1.加指令
          ADDA,Rn; A+Rn=A
          ADDA,dir; A+(dir)=A
          ADDA,@Ri; A+((Ri))=A
          ADDA,#data; A+#data=A
          2.帶進位加
          ADDCA,Rn; A+Rn+C=A
          ADDCA,dir; A+(dir)+C=A
          ADDCA,@Ri; A+((Ri))+C=A
          ADDCA,#data; A+#data+C=A
          3.帶借位減
          SUBBA,Rn; A-Rn-C=A
          SUBBA,dir; A-(dir)-C=A
          SUBBA,@Ri; A-((Ri))-C=A
          SUBBA,#data; A-#data-C=A
          說明:借位位來自程序狀態(tài)字PSW中的進位位C,只是在作減法運算時,被用作借位位。
          例:A=38H,R1=20H,(20H)=23H,C=1指令SUBB A,@R1執(zhí)行后,A=14H。
          4.乘法指令
          MUL AB;A×B = BA
          說明:本指令實現8位無符號乘法。A,B中各放一個8位乘數,指令執(zhí)行后,16位積的高位在B中,低位在A中。
          例A=50H,B=40H,指令MUL AB執(zhí)行后,A=00H,B=32H
          5.除法指令
          DIV AB;A÷B的商在A中,余數在B中
          說明:本指令實現8位無符號除法。A放被除數,B放除數,指令執(zhí)行后,A中為商,B中為 余數。若除數B=00H,則指令執(zhí)行后,溢出標志OV=1,且A,B內容不變。
          例1:A=28H,B=12H,指令DIV AB執(zhí)行后,A=02H,B=04H。
          例2:A=08H,B=09H,指令DIV AB執(zhí)行后,A=00H,B=08H。
          6.增量
          INCA
          INCRn
          INCdir
          INC@Ri
          INCDPTR
          7.減量
          DECA
          DECRn
          DECdir
          DEC@Ri
          DECDPTR
          8.十進制調整
          DAA;把A中按二進制相加后的結果調整成按BCD數相加的結果
          綜合例1:把在R4和R5中的兩字節(jié)數取補(高位在R4中)
          CLRC
          MOVA,R5
          CPLA
          INCA
          MOVR5,A
          MOVA,R4
          CPLA
          ADDCA,#00H
          MOVR4,A
          SJMP$
          綜合例2:把R7中的無符號數擴大10D倍(設原數小于25D)
          MOVA,R7
          MOVB,#0AH
          MULAB
          MOVR7,A
          SJMP$
          綜合例3:把R1R0和R3R2中的2個4位躍D數相加,結果送入R5R4中,如有進位則存于進位位C中。
          CLRC
          MOVA,R0
          ADDA,R2
          DAA
          MOVR4,A
          MOVA,R1
          ADDCA,R3
          DAA
          MOVR5,A
          SJMP$
          在MCS-51系列單片機的算術運算類指令中,乘除法指令是許多8位微處理器和一些8位單片機所沒有的,執(zhí)行時間為4個機器周期。這種指令對編制比較復雜的運算程序,例如,比例-積分-微分(PID)運算、浮點運算、多字節(jié)數乘除運算等是經常要用到的。

          上一頁 1 2 下一頁

          關鍵詞: 51手記指令

          評論


          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();