<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-2">
<META NAME="Generator" CONTENT="MS Exchange Server version 6.5.7654.12">
<TITLE>Proč SWAPF ?</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/rtf format -->

<P><FONT SIZE=2 FACE="Arial CE">Dobrého dne ve spolek.</FONT>

<BR><FONT SIZE=2 FACE="Arial CE">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í. </FONT></P>

<P><FONT SIZE=2 FACE="Arial CE">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. </FONT></P>

<P><FONT SIZE=2 FACE="Arial CE">Poučíte mne někdo ? Ukázku (není dlouhá) přikládám:</FONT>
</P>

<P><FONT SIZE=2 FACE="Arial CE">MOVWF W_TEMP ;copy W to temp register,could be in either bank</FONT>

<BR><FONT SIZE=2 FACE="Arial CE">SWAPF STATUS,W ;swap status to be saved into W</FONT>

<BR><FONT SIZE=2 FACE="Arial CE">BCF STATUS,RP0 ;change to bank 0 regardless of current bank</FONT>

<BR><FONT SIZE=2 FACE="Arial CE">MOVWF STATUS_TEMP ;save status to bank 0 register</FONT>

<BR><FONT SIZE=2 FACE="Arial CE">:</FONT>

<BR><FONT SIZE=2 FACE="Arial CE">:(ISR)</FONT>

<BR><FONT SIZE=2 FACE="Arial CE">:</FONT>

<BR><FONT SIZE=2 FACE="Arial CE">SWAPF STATUS_TEMP,W;swap STATUS_TEMP register into W, sets bank to original state</FONT>

<BR><FONT SIZE=2 FACE="Arial CE">MOVWF STATUS ;move W into STATUS register</FONT>

<BR><FONT SIZE=2 FACE="Arial CE">SWAPF W_TEMP,F ;swap W_TEMP</FONT>

<BR><FONT SIZE=2 FACE="Arial CE">SWAPF W_TEMP,W ;swap W_TEMP into W</FONT>
</P>

<P><FONT SIZE=2 FACE="LindeDaxOffice">Děkuji.</FONT>

<BR><FONT SIZE=2 FACE="LindeDaxOffice">Kručinský</FONT>
</P>

</BODY>
</HTML>