アセンブリの記述例
RB4に接続したLEDを1秒ごとに点滅させる簡単なプログラムを例にアセンブリ言語の記述方法を解説します。ソースコード中のリンクをクリックすると解説ウインドウが開きます。
;SAMPLE program
;10MHz
list p=16f648a
#include <P16f648a.inc>
__CONFIG _BOREN_OFF & _CP_ON & _PWRTE_ON &
_WDT_OFF & _LVP_OFF & _MCLRE_OFF & _HS_OSC
;Variables
i EQU H'20'
j EQU H'21'
k EQU H'22'
INIT CLRF i
CLRF j
CLRF k
MAIN BSF STATUS, RP0
MOVLW B'00001111'
MOVWF TRISA
MOVLW B'00000000'
MOVWF TRISB
CLRF OPTION_REG
BCF STATUS, RP0
MOVLW B'00000111'
MOVWF CMCON
MOVLW B'11111111'
MOVWF PORTB
START BCF PORTB, 4
CALL DELAY
BSF PORTB, 4
CALL DELAY
GOTO START
;delay routine for 1 sec.
DELAY MOVLW D'13'
MOVWF i
I_LOOP MOVLW D'255'
MOVWF j
J_LOOP MOVLW D'255'
MOVWF k
K_LOOP DECFSZ k, f
GOTO K_LOOP
DECFSZ j, f
GOTO J_LOOP
DECFSZ i, f
GOTO I_LOOP
RETURN
END
PICマイコンと電子工作 HOME