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:
Io pensavo che il carry fosse settato (1) quando veniva effettuato lo shift con il bit più significativo anch'esso settato...codice:btfss UD,0 rlf Count3,F btfsc UD,0 rrf Count3,F
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è:
ma il risultato non è come quello appena descritto perchè ottengo questo:0001
0010
0100
1000
0100
0010
0001
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 ?0001
0011
0110
1100
0110
0011
Grazie