; Copyright 2005 Noriaki Mitsunaga list p=16f877a #include p16f877a.inc __config _HS_OSC & _CP_OFF & _PWRTE_ON & _WDT_OFF & _LVP_OFF REG_A1 equ 0x20 REG_A0 equ 0x21 REG_B1 equ 0x22 REG_B0 equ 0x23 plus2 macro REG1, REG2 ; 足すレジスタの上位バイトのアドレスを引数とする movfw (REG1-1) ; 計算結果はREG2のアドレスに入る addwf (REG2-1), f movfw REG1 btfsc STATUS, C incfsz REG1, w addwf REG2, f endm org 0x0 movlw 0xff ; 一つ目のレジスタへ0x02ffを代入 movwf REG_A1 movlw 0x2 movwf REG_A0 movlw 0x2 ; 2つ目のレジスタへ0x0102を代入 movwf REG_B1 movlw 0x1 movwf REG_B0 plus2 REG_A0, REG_B0 ; 0x02ff+0x0102を実行 goto $ end