Ciao
Non riesco a capire come funziona il carry. In particolare mi riferisco alla programmazione di un PIC.
All'interno di un ciclo utilizzo lo shift dei bit, prima sinistro e poi destro:
codice:
btfss UD,0
rlf Count3,F
btfsc UD,0
rrf Count3,F
Io pensavo che il carry fosse settato (1) quando veniva effettuato lo shift con il bit più significativo anch'esso settato...
Se la variabile vale '10000000' e faccio lo shift a sinistra, allora la variabile conterrà '00000000' e il carry varrà '1'.
Il mio ragionamento però credo sia errato in quanto effettuo lo shift tre volte a sinistra e tre volte a destra, cioè:
0001
0010
0100
1000
0100
0010
0001
ma il risultato non è come quello appena descritto perchè ottengo questo:
0001
0011
0110
1100
0110
0011
Il risultato corretto viene eseguito azzerando il carry prima dello shift, ma perchè il carry viene settato visto che uso solo i primi 4 bit ?

Grazie