yo estoy trabajando actualmente con el 16f628A, y estas son las rutinas que uso para escribir y leer en la EEPROM
ESCRIBIR:
BSF STATUS,RP0 ;BANCO 1
BSF EECON1,WREN
BCF INTCON,GIE
BTFSC INTCON,GIE
GOTO $-2
MOVLW H'55'
MOVWF EECON2
MOVLW H'AA'
MOVWF EECON2
BSF EECON1,WR
BTFSC EECON1,WR
GOTO $-1
BCF EECON1,WREN
BCF STATUS,RP0 ;BANCO 0
BSF INTCON,GIE
RETURN
LEER:
BSF STATUS,RP0 ;BANCO1
MOVWF EEADR
BSF EECON1,RD
BTFSC EECON1,RD
GOTO $-1
MOVF EEDATA,W
BCF STATUS,RP0 ;BANCO0
RETURN
Para mandarlas llamar hago lo siguiente:
;Llamada a LEER
MOVLW H'08'
CALL LEER
:Llamada a ESCRIBIR
BSF STATUS,RP0
MOVLW H'0D'
MOVWF EEADR
MOVF ESTADO,W
MOVWF EEDATA
BCF STATUS,RP0
CALL ESCRIBIR
espero te sirva