Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di el92
    Registrato dal
    Dec 2014
    Messaggi
    177

    [assebly] problema shift

    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?

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Di quale CPU parli?

    Di quale istruzione per lo shift parli?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    C'è un assembly per ogni famiglia di CPU, se non specifichi di che assembly stiamo parlando è difficile darti risposte precise... 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.

    Nota che molte CPU implementano anche lo shift aritmetico a destra (sal su x86), che preserva il segno del numero (agisce di fatto come moltiplicazione o divisione per 2^n anche in caso di numeri negativi) conservando (=replicando) il bit di segno.
    Ultima modifica di MItaly; 19-01-2015 a 15:00
    Amaro C++, il gusto pieno dell'undefined behavior.

  4. #4
    Utente di HTML.it L'avatar di el92
    Registrato dal
    Dec 2014
    Messaggi
    177
    si scusate mi sono dimenticata di scriverlo..parlo delle architetture mips di tipo risc...ok quindi fare lo shift a sinistra equivale a ad aggiungere due zeri nei bit meno significativi e quindi è come moltiplicare il registro x 4 giusto?

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Quote Originariamente inviata da el92 Visualizza il messaggio
    si scusate mi sono dimenticata di scriverlo..parlo delle architetture mips di tipo risc...ok quindi fare lo shift a sinistra equivale a ad aggiungere due zeri nei bit meno significativi e quindi è come moltiplicare il registro x 4 giusto?
    Il risultato è quello.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.