17/05/02 21:36:01.47qlEnXsDW.net
最適化が目的じゃなくて比較が目的なので
元のCコードはこれ
void interrupt isr(void){
LATCbits.LATC4 = PORTCbits.RC3;
IOCCFbits.IOCCF3 = 0;
PIR0bits.IOCIF = 0;
}
これの動作を保ったまま普通にアセンブラにしたのが以下
特別冗長にしたわけでもないし、
ギリギリまで最適化したわけでもない
ISR CODE 0x0004
movlb 0
btfss PORTC,3
goto l1
movlb 2
bsf LATC,4
goto l2
l1: movlb 2
bcf LATC,4
l2: movlb 7
bcf IOCCF,3
movlb 0
bcf PIR0,4
retfie