Proč SWAPF ?

Kručinský Ladislav ladislav.krucinsky@linde-mh.cz
Středa Září 2 14:20:39 CEST 2009


Dobrého dne ve spolek.
Učíc se pracovat s PICem, narazil jsem v datasheetu PIC16F676 na ilustrační ukázku programu pro uklizení registru W a registru STATUS při obsluze přerušení. 
Nechápu proč se při uložení registru STATUS nepoužívá funkce MOVF ale SWAPF a to samé pak při obnově registru W. Jaký je přínos toho dvojího přehození slabik (jednou při uložení, podruhé při vyvolání zpět) ??? Určitě to nějaký důležitý důvod má, o to víc mně štve, že ho nejsem 100 odhalit. 
Poučíte mne někdo ? Ukázku (není dlouhá) přikládám:

MOVWF W_TEMP ;copy W to temp register,could be in either bank
SWAPF STATUS,W ;swap status to be saved into W
BCF STATUS,RP0 ;change to bank 0 regardless of current bank
MOVWF STATUS_TEMP ;save status to bank 0 register
:
:(ISR)
:
SWAPF STATUS_TEMP,W;swap STATUS_TEMP register into W, sets bank to original state
MOVWF STATUS ;move W into STATUS register
SWAPF W_TEMP,F ;swap W_TEMP
SWAPF W_TEMP,W ;swap W_TEMP into W

Děkuji.
Kručinský
------------- další část ---------------
HTML příloha byla odstraněna...
URL: http://list.hw.cz/pipermail/hw-list/attachments/20090902/ff05231f/attachment-0002.htm 


Další informace o konferenci Hw-list