Ciao sto cercando di studiare la ilo linguaggio assembly e quindi la cpu con le relative istruzioni. Nello schema della cpu per le istruzioni di salto condizionato(bne e beq) e di salto incondizionato(jum) c'è lo shift a sinistra di due, che rappresenta il numero di parole in cui mi devo spostare(in byte).Ho un dubbio: lo shif a sinistra di due vuol dire che aggiungo due zeri ai bit mono significativi della costante o vuol dire che elimino i due bit meno significativi?
![]()

: lo shif a sinistra di due vuol dire che aggiungo due zeri ai bit mono significativi della costante o vuol dire che elimino i due bit meno significativi?
Rispondi quotando
In generale, comunque, per shift a sinistra logico (shl in x86) si intende l'inserimento di zeri nei bit meno significativi, "spingendo" a sinistra il contenuto attuale del registro (i bit meno significativi "cascano fuori" e spariscono dal registro, anche se su molte CPU l'ultimo bit "spinto fuori" si ritrova nel flag di carry). Un discorso analogo vale per lo shift a destra (shr in x86), con la differenza che qui gli zeri vengono inseriti nei bit più significativi.
