Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    13

    mul a 64 bit

    Ciao a tutti. Sono una studentessa alle prime armi con assembler e mi è stato assegnato un esercizio in cui mi viene chiesto di accettare da tasiera un numero compreso tra 2 e 9 e stamparne, prima in decimale e poi in binario, tutte le potenze fino ad avere un risultato che non superi i 64 bit. Ho letto alcuni manuali e ho visto che la moltiplicazione (MUL)utilizza i registri in base al risultato ottenuto, quindi se viene moltiplicato un numero a 8 bit con un numero presente nel registro AL il risultato sarà salvato nel registro AX a 16 bit, e così via... Ma come faccio quando, nel mio caso, si tratta di manipolare numeri fino a 64 bit?
    Come posso utilizzare la MUL?
    Ringrazio anticipatamente coloro che mi risponderanno.

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: mul a 64 bit

    Originariamente inviato da alsa81
    Ciao a tutti. Sono una studentessa alle prime armi con assembler e mi è stato assegnato un esercizio in cui mi viene chiesto di accettare da tasiera un numero compreso tra 2 e 9 e stamparne, prima in decimale e poi in binario, tutte le potenze fino ad avere un risultato che non superi i 64 bit. Ho letto alcuni manuali e ho visto che la moltiplicazione (MUL)utilizza i registri in base al risultato ottenuto, quindi se viene moltiplicato un numero a 8 bit con un numero presente nel registro AL il risultato sarà salvato nel registro AX a 16 bit, e così via... Ma come faccio quando, nel mio caso, si tratta di manipolare numeri fino a 64 bit?
    Come posso utilizzare la MUL?
    Ringrazio anticipatamente coloro che mi risponderanno.
    Ti è stato detto che devi usare solo registri a 16 bit o anche quelli a 32 bit???
    In ogni caso dovresti realizzare una moltiplicazione a "precisione multipla", perché dovresti fare una moltiplicazione 64 bit x 64 bit.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    13
    No, non mi è stato detto di utilizzare solo registri a 64 bit.

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    13
    Non ho mai sentito parlare di moltiplicazione a precisione multipla, come funziona?

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da alsa81
    Non ho mai sentito parlare di moltiplicazione a precisione multipla, come funziona?
    È molto semplice, te lo spiego a parole ... anzi con uno schema.

    Immagina di dover moltiplicare 16 bit x 16 bit ma tu, ad esempio, hai solo istruzioni per fare 8 bit x 8 bit (con risultato su 16 bit).

    codice:
                    8 bit 8 bit
                   /     |     \
    
                   +-----+-----+
                   |  A  |  B  |  x
                   +-----+-----+
                   +-----+-----+
                   |  C  |  D  |  =
                   +-----+-----+
    -------------------------------
                   +-----+-----+
                   |   B x D   |  +
                   +-----+-----+
             +-----+-----+
             |   A x D   |        +
             +-----+-----+
             +-----+-----+
             |   B x C   |        +
             +-----+-----+
       +-----+-----+
       |   A x C   |              =
       +-----+-----+
    -------------------------------
       +-----+-----+-----+-----+
       |  Risultato su 32 bit  |
       +-----+-----+-----+-----+
    Poi se tenere il risultato su 32 bit o solo su 16 bit (con eventualmente l'indicazione di overflow), dipende dalle specifiche necessità.

    Insomma ... se non puoi fare moltiplicazioni tra operandi a N bit ma puoi farle con operandi di M bit (con M < N), allora puoi risolvere la moltiplicazione con una serie di moltiplicazioni tra le sottoparti degli operandi, con sommatoria finale dei semi-risultati.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,463

    Moderazione

    Manca il linguaggio nel titolo, come richiesto dal Regolamento.

    Ho inserito Assembly... se non dovesse essere quello corretto, fammi sapere.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    13
    In assembly, quando dichiaro una variabile lo posso fare come DB o DW. Come posso fare per dichiarare una variabile a 32 bit?

  8. #8
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,463

    Moderazione

    Originariamente inviato da alsa81
    In assembly, quando dichiaro una variabile lo posso fare come DB o DW. Come posso fare per dichiarare una variabile a 32 bit?
    Ricordati di aprire una nuova discussione per ogni quesito, a meno che lo stesso problema non sia stato affrontato (e risolto) in passato.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    DD

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 © 2025 vBulletin Solutions, Inc. All rights reserved.