; Copyright 2005 Yasuhiro Kanzaki ; Filename: xxx.asm * ; Date: File Version: Author: * list p=16f877A ; デバイスを指定 #include ; デバイスに対応した変数の定義ファイルの読み込みを指定 __CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _RC_OSC & _WRT_OFF & _LVP_ON & _CPD_OFF ; コンフィグレーションビットの設定は テンプレートファイルの設定のまま w_temp EQU 0x71 ; 割り込み処理時のWレジスタの保存用 status_temp EQU 0x72 ; 割り込み処理時のSTATUSレジスタの保存用 pclath_temp EQU 0x73 ; 割り込み処理時のSPCLATHレジスタの保存用 割り込み処理で説明 ORG 0x000 ;  リセット直後プログラム開始アドレス nop ; 何もしない命令(純正の開発装置を使用するとき必要,今は無くてもよい goto main ;  メインプログラムへジャンプ ORG 0x004 ; 割り込み処理ルーチン開始アドレス movwf w_temp ; Wレジスタの保存 movf STATUS,w ; STATUSレジスタの保存処理 movwf status_temp ; movf PCLATH,w ; PCLATHレジスタの保存処理 movwf pclath_temp ; ; ここに割り込み処理ルーチンが記述されます movf pclath_temp,w ; PCLATHレジスタの回復 movwf PCLATH ; movf status_temp,w ; STATUSレジスタの回復 movwf STATUS ; swapf w_temp,f swapf w_temp,w ; Wレジスタの回復 retfie ; 割り込み処理から戻ります 割り込み処理の章で説明します ORG 01ch main bsf STATUS,RP0 ; ここからプログラムの本体が書かれます END