Hallo,
wie kann ich eine for-schleife in Assembler für einen PIC realisieren,
welche Befehle brauche ich?
Danke
Gruß
Hallo,
wie kann ich eine for-schleife in Assembler für einen PIC realisieren,
welche Befehle brauche ich?
Danke
Gruß
ich würde mal grob sagen:
du beginnst mit subsection mit "call subblubb" aufrufen
dann:
Code:subblubb: movlw 0x10 ; hier gewünschten Wert (das ist dein i) movwf DVAR ; Delay-Variable wird runtergezaehlt PLoop: decfsz DVAR,F ; DVAR wird runtergezaehlt, die goto-Anweisung ...auszuführender code............ goto PLoop return
Hallo,
das sieht gut aus werde es mal probieren!
Danke
Der auszuführende Code muss zwischen PLoop und decfsz stehen...
"Decrement F,skip next (Instruction) if Zero"
Gruß,
SIGINT
ist das nicht voll egal? ist ja dann nur noch ne zählgeschichte....
Ähhh,
ist ne FOR-Schleife nicht ne "Zählgeschichte"?!?
Nope, es ist nicht egal wo das decfsz steht...
da der Befehl bei gesetztem Zero-Flag nur die darauf folgende Anweisung übersprungen wird. Das wäre in deinem Fall nur die erste Anweisung vom "auszuführenden Code"... der Rest davon würde ganz normal ausgeführt werden. Und das "goto PLoop" würde dafür sorgen, daß das Programm in einer Endlosschleife verhart. Also ist folgendes richtig:
Gruß,Code:subblubb: movlw 0x10 ; hier gewünschten Wert (das ist dein i) movwf DVAR ; Delay-Variable wird runtergezaehlt PLoop: ...auszuführender code............ decfsz DVAR,F ; DVAR wird runtergezaehlt, die goto-Anweisung goto PLoop return
SIGINT
Lesezeichen