Frage zu Assembler

Gast #105848
Lesenswert?
• ▲
▼
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren