Hallo, ich habe hier einen Codeschnipsel aus einer Asm-Routine für das Zählen von Sekunden (ist aber vom PIC). Den größten Teil davon verstehe ich ja, aber bei Zeile 5 und 6 komme ich nicht weiter. Warum wird -0x05 zum Arbeitregister addiert um dann gleich wieder -6 in das Arbeitsregister zu schreiben? 01 SecondIncrement: 02 decf second, f 03 movlw 0x0F ; skip past hexidecimal codes 04 andwf second, w 05 addlw -0x05 06 movlw -6 07 btfsc STATUS, Z ; are with at xF? 08 addwf second, f ; yes, subtract 6 and we'll be at x0 instead 07 movlw 0xA6 ; have we gone beyond second 59? 08 subwf second, w 09 btfsc STATUS, C 10 goto IdleLoopSkipSend 11 movlw 0xFF 12 movwf second ; yes, set back to second 00 Danke, Jochen
PIC-Assembler ist mir doch wirklich immer wieder ein Graus :-), und ich werde mich damit in diesem Leben auch nicht mehr anfreunden.
der Befehl in Zeile 5 beeinflußt das Z-Flag, das dann in Zeile 7 abgefragt wird. Gerhard
Ja genau: Das Z-Flag welches bei der Addition gesetzt wird. Danke für die Hilfe, Jochen
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.