PIC16F84 ASM

I dokumentationen til 16F84 står forslag til kode til PUSH og POP til anvendelse hhv før og efter interruptet.

; ***************************************************** PUSH ; Gemmer vigtige registre movwf WBuffer ; save w reg in Buffer swapf STATUS,W ; get status to be saved into w movwf StatBuffer ; move W(indholdet) til StatBuffer return

; ***************************************************** POP ; Genetablerer vigtige registre swapf StatBuffer,W ; swap nibbles in Statbuffer ; and place result into w movwf STATUS ; move indholdet in w to STATUS swapf WBuffer,F ; swap nibbles in WBuffer ; and place it into WBuffer swapf WBuffer,W ; swap nibbles in WBuffer and ; place it in W return

HVORFOR er det liiiige NIBBLES swap'es ved flytningerne ?

Mvh KS

Reply to
KS
Loading thread data ...

hvis du andvender movf får du en ændring i Z hvad ikke er tilfælde med swapf

det er den eneste logiske forklaring jeg kan komme på

/Carsten

Reply to
Carsten

Det har måske noget med flag at gøre. Er der ikke noget med at en PIC sætter Z flaget ved næsten alle instruktioner?

Reply to
HKJ

"HKJ" skrev i en meddelelse news:csqd7m$21p$ snipped-for-privacy@news.cybercity.dk...

sætter

Aha ! - når jeg vil 'store' en kopi af W kan jeg blot gøre

movwf WBuffer ; påvirker IKKE Z i STATUS

Ved 'store' af STATUS er det mere specielt:

16F84 har KUN movf til at flytte fra en adresse, men den PÅVIRKER Z i STATUS - så må jeg finde mig i at anvende en SWAP-instruktion, som desværre har den side- effekt, at den swap'er nibblerne også - men det må jeg så bare kompensere for i min 'REstore', og herved får jeg en "troværdig" kopi af STATUS efter min 'REstore', men indtil 'REstore' udføres er den swap'et.

swapf STATUS,W ; påvirker IKKE Z, men swap'er ; nibblerne '32107654' movwf StatBuffer ; påvirker IKKE Z i STATUS, ; men flytter W(32107654) til StatBuffer

Jamen, tak til jer begge - jeg tror den fes ind !

Mvh KS

Reply to
KS

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.