Hier nochmal die richtige Version.
Code:
;************************************* 
; 
; Includedatei für den PIC16F628A 
   list p=16f628a 
   include "p16f628a.inc" 

;************************************* 
; Configuration festlegen 
; 8Mhz Resonator: Brown out Reset on, Data Protection off, Power up Timer on, Watchdog off, LV-Programmierung off 

   __CONFIG  _BODEN_ON & _CP_OFF & _DATA_CP_OFF & _PWRTE_ON & _WDT_OFF & _LVP_OFF & _MCLRE_OFF & _HS_OSC & _LVP_OFF 

;***** VARIABLEN******************
w_temp        EQU     0x70        ; context saving 
status_temp   EQU     0x71        ; context saving
Flags		equ	H'0072'		; 	
count		equ	H'0020'
tempa 		equ	H'0021'
tweek		equ	H'0022'		
;********************************* 
; Pinfunktion festlegen 
  
	org 	0x0000            ;Programmstart 
 	goto	INIT
	org	0x004             ; Interruptbehandlung
INTSERV	movwf   w_temp            ; W register retten
	movf	STATUS,w          ; status register nach W register
	movwf	status_temp       ; STATUS register retten
	bcf	STATUS,RP0	; Bank0	
	bcf	STATUS,RP1
 ; hier kommt später Code hin
 ; für eventuelle Interrupts
IntEnd	movf    status_temp,w    ; STATUS register 
	movwf	STATUS		; wieder herstellen
	swapf   w_temp,f
	swapf   w_temp,w	; W register wieder herstellen
				; ( Inhalt wie vor Interrupt)					
	retfie                  ; Rücksprung aus Interruptbehandlung
;****************************************************************
INIT	clrf   INTCON		; keine Interrupts zulassen
	bcf	STATUS,IRP
	bcf	STATUS,RP0	
	bcf	STATUS,RP1	; Bank0

 	movlw   0x07          	;Comperators off
 	movwf   CMCON 		;I/O Funktion ermöglichen

	clrf    PORTA         
	clrf	PORTB		; alle Ausgänge Low

	BCF    STATUS, RP1      ;Bank 1 auswählen       
	BSF   STATUS, RP0 

	movlw   0x3F          ;Pins config 
	movwf   TRISA         ;PORTA 0-5 Input

	movlw   0x00         ;PortB Output 
	movwf    TRISB 

	bcf   STATUS, RP0      ;Bank 0 auswählen 
; hier bei Bedarf andere Register 
; für Timer,CCP,EEprom,Usart,Vref
; initialisieren	

;*********************************************** 
;Taster abfragen , Led ausgeben 
;Hier steht das eigentliche Programm  
;
Start	btfss	PORTA,0		; "überspringe nächsten Befehl,wenn Taster nicht gedrückt
	goto	LedAn
	bcf	PORTB,0		; Led aus
	;andere Aufgaben hier
	goto 	Start		
LedAn	bsf	PORTB,0		; Led an
	goto	Start

;**********SUB _Routinen*************************
DEL1MS		movlw	D'198'		;t=(n-1)*5+2(call)+6(ret)+7(Kopf)
		movwf	count
		nop
		goto $+1
		goto $+1
DLY1MS		goto $+1
		decfsz	count,f
		goto DLY1MS
		return
DEL200MS	movlw	D'199'
		movwf	tempa
DLY200		call	DEL1MS
		decfsz	tempa,f
		goto	DLY200
		movlw	D'132'
		movwf	count
TWEEK200	decfsz	count,f
		goto	TWEEK200
		nop
		return
DELAY500	movlw	D'250'
		movwf	tempa
DLY500		call	DEL1MS
		decfsz	tempa,f
		goto	DLY500
		movlw	D'64'
		movwf	tweek
TWEEK500	decfsz	tweek,f
		goto	TWEEK500
		movlw	D'250'
		movwf	tempa
DLY501		call	DEL1MS
		decfsz	tempa,f
		goto	DLY501
		movlw	D'64'
		movwf	tweek
TWEEK501	decfsz	tweek,f
		goto	TWEEK501
		return
end
Die Delay-Zeiten sind für 8Mhz angepasst, kann man
immer wieder mal gebrauchen.
Ansonsten hat das Programm bei mir im Simulator(MPLAB)
funktioniert.

Viel Erfolg!
Digger