Avbrottshantering PIC

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
SeniorLemuren
Inlägg: 8440
Blev medlem: 26 maj 2009, 12:20:37
Ort: Kristinehamn

Avbrottshantering PIC

Inlägg av SeniorLemuren »

I ett exempel kan man läsa att man ska spara register W och STATUS, det är jag med på, men varför använder man SWAP?

Kod: Markera allt

    MOVWF   TMP_W           ; Copy W to temp register
    SWAPF   STATUS,W        ; Swap Status and move to W 
    MOVWF   TMP_STATUS      ; Copy STATUS to a temp
    CLRF    STATUS          ; Force Bank 0
Varför flyttar man inte bara STATUS till TMP_STATUS direkt?

Och när man sedan lägger tillbaka registren så använder man även SWAP på W

Kod: Markera allt

    SWAPF   TMP_STATUS,W    ; Pull Status back into W
    MOVWF   STATUS          ; Store it in status 
    SWAPF   TMP_W,F         ; Prepare W to be restored
    SWAPF   TMP_W,W         ; Restore it
Användarvisningsbild
SeniorLemuren
Inlägg: 8440
Blev medlem: 26 maj 2009, 12:20:37
Ort: Kristinehamn

Re: Avbrottshantering PIC

Inlägg av SeniorLemuren »

Aha. kan det vara att SWAP operationer inte förändrar STATUS registret?
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Avbrottshantering PIC

Inlägg av sodjan »

YES ! :-)
Skriv svar