Por lo que lei del programa el error podria ser el siguiente: Al llegar a 0 el valor de var1, efectivamente decrementa el valor de var2 en 1 pero no existe un valor de "recarga" para el valor var1 (que ya esta en 0) por lo que la cuenta comienza ahora en 255, es decir en vez de tomar 2 * 2 ciclos esta tomando 2 + 255 ciclos (suma gruesa, en realidad se tarda un poco mas por lo d que la instruccion decfsz toma dos ciclos y todo eso), la solucion seria la siguiente:
inicio movlw 02h
movwf var2, 1
recar movlw 02h
movwf var1, 1
salto decfsz var1, 1
goto salto
decfsz var2, 1
goto recar
return o goto identificador