or even this way, constant speed

Code:
control        EQU  0x30
latb_shadow    EQU  0x31
LATCH          EQU  0x32   ; simulate lat reg
 

 ORG     ResetVector
 goto    Start


Start
  MOVLW 0
  MOVWF control
  MOVLW 3
  MOVWF LATCH ; eg. LATB,A
lopo
  BANKSEL latb_shadow
  INCF control,F
  MOVLW 0xf
  ANDWF control,F
  
  MOVFF LATCH ,latb_shadow 
  MOVLW 0xf
  andwf latb_shadow ,F  
  SWAPF latb_shadow,F 
  MOVF  control,W
  IORWF latb_shadow ,F
  SWAPF latb_shadow,W
  MOVWF LATCH 
 
  GOTO lopo

  END