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

PIC單片機(jī)入門_匯編/混編/C編比較

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

1.問(wèn)題描述:


對(duì)RAM中從30h開始的50個(gè)單元清零。


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       ;計(jì)數(shù)值減1,結(jié)果為0就 

                            ;跳過(guò)下一條指令到STOP處

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

STOP  GOTO  STOP            ;停機(jī)

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語(yǔ)言中定義的變量,在匯編中對(duì)其尋址時(shí)一定要用下劃線。

4.C語(yǔ)言編程


 #include

char COUNT;   //定義全局變量

main(){ 

COUNT=50;     

FSR=0x30;

INDF=0;

NEXT:  INDF=0;

       FSR++;

       if (COUNT-- >0) 

       goto NEXT;

while(1){  ;   }

}

注意:用C語(yǔ)言編寫可讀性強(qiáng),但是占用的資源會(huì)多。


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