### 帝 ver.4(α) for PIC16F877 テストコード No.3

目的

    ・分岐命令(BTFSC/BTFSS/DECFSZ)のテスト

検証コード

    		list     		 p=16f877
    		#include

    cnt1		equ		10h
    cnt2		equ		11h

    		org		0h
    		goto		init

    		org		4h
    init
    		clrf		cnt1
    		bsf		STATUS,RP0
    		clrf		TRISB
    		bcf		STATUS,RP0
    loop
    		movf		cnt1,w			;if(cnt1-0x0=0){goto phase_0}
    		sublw		0x0
    		btfsc		STATUS,Z
    		goto		phase_0

    		movf		cnt1,w			;if(cnt1-0x1=0){goto phase_1}
    		sublw		0x1
    		btfsc		STATUS,Z
    		goto		phase_1

    		movf		cnt1,w			;if(cnt1-0x2=0){goto phase_2}
    		sublw		0x2
    		btfsc		STATUS,Z
    		goto		phase_2

    		movf		cnt1,w			;if(cnt1-0x3=0){goto phase_3}
    		sublw		0xf			;else{goto init}
    		btfsc		STATUS,Z
    		goto		phase_3
    		goto		init

    ;==================================================================
    phase_0
    		movlw		0x8
    		movwf		cnt2
    		movlw		0x01
    		movwf		PORTB
    phase_0_loop
    		rrf		PORTB,f
    		decfsz		cnt2,f
    		goto		phase_0_loop
    		goto		loop

    ;==================================================================
    phase_1
    		movlw		0x8
    		movwf		cnt2
    		movlw		0x80
    		movwf		PORTB
    phase_1_loop
    		rlf		PORTB,f
    		decfsz		cnt2,f
    		goto		phase_1_loop
    		goto		loop
    ;==================================================================
    phase_2
    		movlw		0x8
    		movwf		cnt2
    		movlw		0xF0
    		movwf		PORTB
    phase_2_loop
    		swapf		PORTB,f
    		decfsz		cnt2,f
    		goto		phase_2_loop
    		goto		loop
    ;==================================================================
    phase_3
    		movlw		0x8
    		movwf		cnt2
    		movlw		0xFF
    		movwf		PORTB
    phase_3_loop
    		comf		PORTB,f

    		decfsz		cnt2,f
    		goto		phase_3_loop
    		goto		loop

    		end