Hallo ,
vieleicht findet ja wer mal etwas Zeit und "Tinte" für "ein, zwei" helfenden Sätzen.
Ich habe mich in RN-Wissen , etwas über PIC Assemblerprogrammierung eingelesen und auch ein funktionierendes LED- Blinkbeispiel zusammn bekommen.

Nur die Warte-Routine habe ich mal orginal übernommen, aber ich verstehe sie nicht ganz...und zwar die Dokumentation, das die Register 256mal durchlaufen werden.
Das sie dekrementiert werden ist mir verständlich , aber ein Register muss doch auch mit einem Wert( 256 ? ) geladen werden und das ist mein grosses Rätsel, das ich das nicht finde.
Hier die Warteschleife:
Code:
P0    equ    0x20                   ; Variablen definieren (Register benennen)
P1    equ    0x21
P2    equ    0x22

Warten   movlw   2               ; schreibe "2" für ca. 0,4 s
         movwf   P2                  ; ins Register P2
         clrf    P1                       ; lösche Register P1 ("0" für 256 Durchläufe) 
         clrf    P0                       ; lösche Register P0 ("0" für 256 Durchläufe)
         decfsz  P0,1                 ; dekrementiere P0 und überspringe "goto $-1" bei P0 = 0
         goto    $-1                    ; sonst gehe zur voherigen Adresse (Befehl "decfsz  P0") 
         decfsz  P1,1                 ; dekrementiere P1 und überspringe "goto $-4" bei P1 = 0 
         goto    $-4                    ; sonst gehe zur aktueller Adresse - 4 (Befehl "clrf P0")
         decfsz  P2,1                  ; dekrementiere P2 und überspringe  "goto $-7" bei P2 = 0
         goto    $-7                     ; sonst gehe zur aktueller Adresse - 7 (Befehl "clrf P1")
         return                           ; springe zurück zum Aufrufer
Das Codebeispiel habe ic h aus aus den Tutorial im obigen Link :Das erste Programm


Leider ist meine Assemblerzeit schon lange her C64er Ära und die des 8085..so das ich nicht mehr so Sattelfest bin .

Wenn mir wer die Güte erweisen würde , mich gedanklich aufzufrischen , warum da was von 256 Durchläufen steht, wäre ich dankbar.

Gruss und Dank

Gerhard