list p=16f877a ; PIC16F877A用のプログラムであることを宣言 #include p16f877a.inc ; PIC16F877A用のヘッダ・ファイルを読み込む REG_A1 equ 0x20 REG_B1 equ 0x21 REG_C1 equ 0x22 REG_D1 equ 0x23 REG_A2 equ 0x24 REG_B2 equ 0x25 REG_C2 equ 0x26 REG_D2 equ 0x27 movlw 0x3 movwf REG_A1 movlw 0x2 movwf REG_B1 movlw 0x1 movwf REG_C1 movlw REG_A1 ; REG_A1のアドレスを movwf FSR ; FSRへ代入 call AplusBplusC movwf REG_D1 ; wレジスタに入っている答えをREG_D1へ movlw 0x2 movwf REG_A2 movlw 0x4 movwf REG_B2 movlw 0x3 movwf REG_C2 movlw REG_A2 ; REG_A1のアドレスを movwf FSR ; FSRへ代入 call AplusBplusC movwf REG_D2 ; wレジスタに入っている答えをREG_D2へ goto $ AplusBplusC ; REG_A、REG_B、REG_Cを足しwレジスタで答えを返す movfw INDF ; REG_Aの内容をwレジスタへ代入 incf FSR, f ; FSRに1を足しREG_Bを指すように addwf INDF, w ; REG_Bの内容をwレジスタへ足す incf FSR, f ; FSRに1を足しREG_Cを指すように addwf INDF, w ; REG_Cの内容をwレジスタへ足す return end ; プログラムの最後には必ず書く リスト3-11 Copyright 2005 Noriaki Mitsunaga