PIC单片机入门_汇编/混编/C编比较

1.问题描述:

对RAM中从30h开始的50个单元清零。

2.汇编方法

COUNT EQU 20H               ;指定20H寄存器为循环变量
FSR   EQU 04H               ;指定FSR为04H
INDF  EQU 00H               ;指定INDF为00H
      MOVLW  D’50          ;给循环变量赋初值
      MOVWF  COUNT   
      MOVLW   30H           ;将30H →FSR
      MOVWF    FSR        
NEXT  CLRF   INDF           ;间接寻址   
      INCF  FSR,1           ;地址指针内容加1,指向下一单元 
      DECFSZ  COUNT,1       ;计数值减1,结果为0就 
                            ;跳过下一条指令到STOP处
      GOTO  NEXT            ;跳转回去并执行下一次循环 
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语言编写可读性强,但是占用的资源会多。

你可能感兴趣的:(PIC硬件编程技术详解)