《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 業(yè)界動態(tài) > PIC單片機入門_匯編/混編/C編比較

PIC單片機入門_匯編/混編/C編比較

2018-07-31
來源:互聯(lián)網(wǎng)
關(guān)鍵詞: 匯編 混編 C語言

1.問題描述:


對RAM中從30h開始的50個單元清零,。


2.匯編方法


 COUNT EQU 20H               ;指定20H寄存器為循環(huán)變量

FSR   EQU 04H               ;指定FSR為04H

INDF  EQU 00H               ;指定INDF為00H

      MOVLW  D’50          ;給循環(huán)變量賦初值

      MOVWF  COUNT   

      MOVLW   30H           ;將30H →FSR

      MOVWF    FSR        

NEXT  CLRF   INDF           ;間接尋址   

      INCF  FSR,1           ;地址指針內(nèi)容加1,指向下一單元 

      DECFSZ  COUNT,1       ;計數(shù)值減1,,結(jié)果為0就 

                            ;跳過下一條指令到STOP處

      GOTO  NEXT            ;跳轉(zhuǎn)回去并執(zhí)行下一次循環(huán) 

STOP  GOTO  STOP            ;停機

3.混編方法


 #include

char COUNT;   //定義全局變量

main(){ 

    COUNT=50;     

    FSR=0x30;

  #asm

        INDF   EQU 00H    

  NEXT  CLRF   INDF 

        INCF  _FSR, F

        DECFSZ  _COUNT,F  

        GOTO  NEXT

  #endasm

  while(1){  ; 

 }

}

注意:只要是C語言中定義的變量,,在匯編中對其尋址時一定要用下劃線。

4.C語言編程


 #include

char COUNT;   //定義全局變量

main(){ 

COUNT=50;     

FSR=0x30;

INDF=0;

NEXT:  INDF=0;

       FSR++;

       if (COUNT-- >0) 

       goto NEXT;

while(1){  ;   }

}

注意:用C語言編寫可讀性強,,但是占用的資源會多,。


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點,。轉(zhuǎn)載的所有的文章、圖片,、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有,。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者。如涉及作品內(nèi)容,、版權(quán)和其它問題,,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,,避免給雙方造成不必要的經(jīng)濟損失,。聯(lián)系電話:010-82306118;郵箱:[email protected],。