Gast
#105848
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