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