falls es jemanden interessiert habe nun folgenden code:

Code:
	LIST P=16F628, R=DEC    ; Use the PIC16F628 and decimal system 

        #include "P16F628.INC"  ; Include header file 

        
     

        ORG    0x000            ; Program starts at 0x000 

; --------------------------------
; SET ANALOG/DIGITAL INPUTS PORT A
; --------------------------------

		movlw 7					; lädt 7 in das W-Register
		movwf CMCON				; 0x1F = 7 

; ---------------- 
; INITIALIZE PORTS
; ---------------- 

		movlw b'00100000'	
		movwf PIE1				; USART Receive Interrupt Enable Bit
	
		movlw b'00000000'   	; lädt 0 in das W-Rgeister
        movwf PORTA				; alle low an PORTA
        
        movlw b'00000100'		; W-Register
        movwf PORTB				; lädt in 0x06

        bsf STATUS,RP0      	; im Register Status wird das RP0 bit auf 1 gesetzt

        movlw 0xFC				; schreibt den wert FE in W
        movwf TRISA				; bis auf RA0,RA1 alle Eingäng(high)
        movlw 0xFF 				; alle Eingänge RB1(RX)=Eingang 
        movwf TRISB

; ------------------------------------
; SET BAUD RATE TO COMMUNICATE WITH PC
; ------------------------------------
; Boot Baud Rate = 9600, No Parity, 1 Stop Bit

        movlw 0x19              ; 0x19=9600 bps (0x0C=19200 bps)
        movwf SPBRG
        movlw b'00000100'       ; brgh = high (2)
        movwf TXSTA             ; schaltet brgh high ein
        bcf STATUS,RP0          ; RAM PAGE 0

        movlw b'10010000'       ; schaltet seriellen port ein 
        movwf RCSTA

; ---------
; MAIN LOOP
; ---------
	
loop    call receive       
		call vergleich
		call vergleich2
		call vergleich3
		call vergleich4              
        goto loop

; -------------------------------------------
; SIGNALE VON DER RSR232 SCHNITTSTELLE EMPFANGEN
; -------------------------------------------

receive btfss PIR1,RCIF         ; checkt ob im register PIR1 das RCIF bit (USART Receive Interrupt Flagbit) wenn der receive buffer voll ist geht weiter
        goto receive
        movf RCREG,0            ; speichert das Empfangende in W
        movwf 0x7F				; speichert das Empfangene in Speicherzelle 7F
		return

; -------------------------------------------------------------
; "VERGLEICHT" DIE BEIDEN SIGNALE
; -------------------------------------------------------------

vergleich
	movf 0x7F,0					; das aus der RS232 Empfange Byte in W schreiben
	sublw 1						; das Signal wird mit 1 subtrahiert, wenn 0 herraus kommt wird Zero Bit gesetzt
	btfss STATUS,Z				; wenn Zerobit gesetzt wurde, wird nächster befehl übersprungen
	return

	bsf PORTA,0 				; PORTA Bit 0 wird gesetzt
	return
			
vergleich2
	movf 0x7F,0					; das aus der RS232 Empfange Byte in W schreiben
	sublw 2						; das Signal wird mit 2 subtrahiert, wenn 0 herraus kommt wird Zero Bit gesetzt
	btfss STATUS,Z				; wenn Zerobit gesetzt wurde, wird nächster befehl übersprungen
	return

	bsf PORTA,1 				; PORTA Bit 1 wird gesetzt
	return

vergleich3
	movf 0x7F,0					; das aus der RS232 Empfange Byte in W schreiben
	sublw 3						; das Signal wird mit 3 subtrahiert, wenn 0 herraus kommt wird Zero Bit gesetzt
	btfss STATUS,Z				; wenn Zerobit gesetzt wurde, wird nächster befehl übersprungen
	return

	bcf PORTA,0 				; PORTA Bit 0 wird gelöscht
	return

vergleich4
	movf 0x7F,0					; das aus der RS232 Empfange Byte in W schreiben
	sublw 4						; das Signal wird mit 4 subtrahiert, wenn 0 herraus kommt wird Zero Bit gesetzt
	btfss STATUS,Z				; wenn Zerobit gesetzt wurde, wird nächster befehl übersprungen	
	return

	bcf PORTA,1 				; PORTA Bit 1 wird gelöscht
	return
	
END
damit kann ich über RS232 Schnittstelle 2 Relaisschalten
einzeld an und einzeld aus
also zumindestens kalppts mit dem PIC Simulator
leider ist der PIC noch nicht angekommen

MFG vielen Dank für die Hilfe hier DHigh