Das mit dem "Register retten" bezieht sich auf ISR, was Du nicht hast.
Ich denke, das Du nicht das ganze Programm gepostet hast, da fehlt z.B. "__config" usw.
Ich habe aus Deinem Programm, alles was ich unnötig finde, entfernt. Hoffe aber, das es trotzdem funktioniert. 
MfG
Code:
;*****************************************************************
;Programm
;*****************************************************************
movlw 3
movwf 0x20 ; Speicherzelle wird die Zahl3 geladen
anf
btfsc PORTA, 0 ; Taster abfragen - Taster gedrückt -> zur Zählschleife
goto anf
;**************************************************************
;***************************************************************
t_los
btfss PORTA, 0 ;Taster abfragen - Taster los -> zum Counter
goto t_los
;***************************************************************
call z_schleife
;****************************************************************
decfsz 0x20, 1 ; Counter = 3
goto anf
bsf PORTB, 0
loop
goto loop
;************************Unterprogramm****************************
;20000 Takte
z_schleife
movlw d'100'
movwf 0x21
S2
movlw d'200'
movwf 0x22
S22
decfsz 0x22, 1
goto S22
decfsz 0x21, 1
goto S2
return
;******************************************************************
end
Lesezeichen