wreg の設定ビット数をカウントするサブルーチンを書いていますが、サブプログラムの最後で return ステートメントに到達すると、return ステートメントを際限なく繰り返すだけです。私はPICとアセンブリに慣れていないので、ばかげたことをしただけだと確信していますが、まだ解決できていません。どんな助けでも大歓迎です。
これが私のコードです:
COUNT equ 0x00
NUMBER equ 0x01
BITS equ 0x02
;bitcounter subprogram counts the number of set bits in a byte
BITCOUNTER:
Loop1 rlcf NUMBER,f ;rotates one bit of number into carry flag, store rotated number
btfsc STATUS, C ;skips next line if carry is clear
incf COUNT, f ;add one to count, store in count
bcf STATUS, C ;clear carry flag
decfsz BITS
goto Loop1
movf COUNT, 0 ; put bit count into W register
return
START
movlw 0x0008
movwf BITS
movlw 0xF2
movwf NUMBER ;stores input as "number"
call BITCOUNTER
end