org 00h
clrw ; clear status register
bsf 03h, 5 ; select bank1
bsf 03h, 6
movlw b'00000000' ; PORTB made as output
movwf 86h
bcf 03h, 5 ; select bank0
bsf 03h, 6
clrf 06h ; clear PORTB
bsf 03h, 0 ; clear carry flag
loop
rlf 06h, 1
call _delay_1s
goto loop
_delay_1s
;4999993 cycles
bcf 03h, 5 ; select bank0
bsf 03h, 6
movlw 0x2C
movwf 20h
movlw 0xE7
movwf 21h
movlw 0x0B
movwf 22h
_delay_1s_0
decfsz 20h, f
goto $+2
decfsz 21h, f
goto $+2
decfsz 22h, f
goto _delay_1s_0
;3 cycles
goto $+1
nop
;4 cycles (including call)
return
END