Hi Mathew, Welcome to the world of PICs. Try this out for your LED flasher. Title "LED Flasher" ; list p=16F84 ; processor type Status equ 3h ; Status register rp0 equ 5h ; RAM Page select bit PortA equ 5h ; PortA register Option_Reg equ 81h ; option register (in RAM Page 1) TrisA equ 85h ; TrisA register (in RAM Page 1) intcon equ 0Bh ; intcon register t0if equ 2h ; tmr0 overflow flag Count equ 0Ch ; register for delay counting org 0h ; startup vector = 0000 ; Setup Ports bsf Status,rp0 ; (5) TrisA is in RAM Page 1 movlw b'11111110' ; set PortA 0 bit as an output movwf TrisA movlw b'11010111' ; set tmr0 for internal clock and movwf Option_Reg ; prescale for tmr0 @ 1:256 bcf Status,rp0 ; (5) back to RAM page 0 ; main code loop mnloop movlw d'20' ; count delay loop 20 times movwf Count movlw b'00000001' ; alternate PortA bit 0 xorwf PortA ; Total delay is approx 1/2 second @ 10MHz delay btfss intcon,t0if ; (2) wait for tmr0 overflow goto delay bcf intcon,t0if ; (2) clear tmr0 overflow flag decfsz Count ; count this 20 times goto delay goto mnloop ; alternate PortA bit 0 and reset delay count ; ; end Notice that I defined the Option register as "Option_Reg". If I defined it with it's real name "Option" then the compiler will complain because "Option" is an instruction mnemonic. << try typing that fast :-) Have fun... -- Best regards Tony http://www.picnpoke.com Email sales@picnpoke.com