帝 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