Come scambiare un registro con W in assembler

Scambio di un registro con W in assembler

Con un banale accorgimento è possibile scambiare il contenuto di un qualsiasi registro con il registro accumulatore W senza l’ausilio di un terzo registro di appoggio. L’accorgimento consiste nell’usare tre istruzioni XOR consecutive come mostrato  nel listato 3 (si ricorda che l’operazione XOR tra due bit restituisce un valore alto solo se i due bit operando sono diversi tra loro). Il listato 3 riporta un esempio scritto sottoforma di macro per PIC ed è facilmente trasportabile su altri microcontrollori. Per l’esempio si è supporto di voler scambiare il contenuto di W con quello di un registro A.

I commenti a fianco di ciascuna riga di codice mostrano il contenuto dei registri coinvolti a seguito dell’esecuzione della relativa istruzione. L'esempio riportato  è scritto in assembler per PIC e, come si può notare dal listato 3, il nome della macro è stato scelto in modo  da assomigliare ad una istruzione vera e propria. Includendo questa macro nel programma si disporrà dunque di una "nuova istruzione" SWAPWF che scambia il contenuto  di  W  con quello del registro F passatogli come parametro.

SWAPWF
macro     A       ;sia A=11010011 W=01001111
xorwf     A,F     ;A=10011100  W=01001111
xorwf     A,W     ;A=10011100  W=11010011
xorwf     A,F     ;A=01001111  W=11010011
          endm
Listato 3

Iscriviti e ricevi GRATIS
Speciale Pi

Fai subito il DOWNLOAD (valore 15€) GRATIS

11 Commenti

  1. johnnydsg 26 dicembre 2015
    • Emanuele Bonanni Emanuele 26 dicembre 2015
    • smania2000 smania2000 26 dicembre 2015
      • Emanuele Bonanni Emanuele 27 dicembre 2015
  2. Giovanni Di Maria Giovanni Di Maria 26 dicembre 2015
  3. Maurizio Di Paolo Emilio Maurizio 26 dicembre 2015
  4. dfg123434 19 giugno 2017
    • Maurizio Di Paolo Emilio Maurizio Di Paolo Emilio 19 giugno 2017
  5. Giovanni Di Maria Giovanni Di Maria 19 giugno 2017
  6. Giovanni Di Maria Giovanni Di Maria 19 giugno 2017

Scrivi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Iscriviti e ricevi GRATIS
Speciale Pi

Fai subito il DOWNLOAD (valore 15€) GRATIS