Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2012
    Messaggi
    5

    [ASSEMBLY] Somma modulo e segno

    Salve, è da un pezzo che seguo questo forum ma è la prima volta che mi rivolgo a voi per chiedere aiuto.
    C'è un esercizio di assembler per l'esame di programmazione che mi sta facendo uscire di testa.

    allora i dati sono i seguenti :

    operazione .byte (vale '+' o '-' a seconda che si voglia fare somma o sottrazione)
    operando1 .long (numero in modulo e segno)
    operando2 .long (numero in modulo e segno)
    risultato .long

    in pratica si chiede che si scriva un programma in assembly capace di sommare o sottrarre a seconda del contenuto di "operazione" e mettere il risultato in "risultato" sempre in modulo e segno!

    qualcuno di voi ha idea di come procedere?
    Vi ringrazio in anticipo!

  2. #2

    Moderazione

    Assembly per che CPU?
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2012
    Messaggi
    5

    Re: Moderazione

    Originariamente inviato da MItaly
    Assembly per che CPU?
    Mi scuso, assembly 8086!

  4. #4

    Re: Re: Moderazione

    Originariamente inviato da fabiuzz
    Mi scuso, assembly 8086!
    Ok, provvedo ad aggiungerlo nel titolo, come da regolamento.
    Amaro C++, il gusto pieno dell'undefined behavior.

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

    Re: [ASSEMBLY] Somma modulo e segno

    Originariamente inviato da fabiuzz
    qualcuno di voi ha idea di come procedere?
    Leggi il valore dell'operazione in un registro
    Confronta con il carattere '+'
    Se è uguale salta alla parte del programma che esegue l'addizione
    altrimenti continua eseguendo la sottrazione

    Prova ad iniziare a scrivere del codice tu ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2012
    Messaggi
    5

    Re: Re: [ASSEMBLY] Somma modulo e segno

    Originariamente inviato da oregon
    Leggi il valore dell'operazione in un registro
    Confronta con il carattere '+'
    Se è uguale salta alla parte del programma che esegue l'addizione
    altrimenti continua eseguendo la sottrazione

    Prova ad iniziare a scrivere del codice tu ...
    Ciao ! Grazie per la risposta.
    Ti spiego, alla parte che mi hai spiegato ci ero arrivato, un comune CMP con 2 JE ecc..
    il problema è fare la somma (o sottrazione) infatti i comandi ADD e SUB non fanno somma MODULO e SEGNO ma la fanno in complemento a 2.

    Pensai : potrei convertire da modulo e segno a complemento a 2 e poi riconvertire dopo aver eseguito l'operazione. Ma non funziona.
    ti scrivo il codice che ho usato :
    in BH operando1
    in BL operando2
    [...]
    LEA operazione, %EDX
    SHL %BH
    NOT %BH
    INC %BH
    RCR %BH

    SHL %BL
    NOT %BL
    INC %BL
    RCR %BL

    CMP $'+', (%EDX)
    JE somma
    CMP $'-', (%EDX)
    JE diff
    RET

    somma: ADD %BH, %BL
    JMP uscita
    RET

    diff: SUB %BH, %BL
    JMP uscita
    RET

    uscita è un sottoprogramma per stampare a schermo.

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2012
    Messaggi
    5
    proprio nessuna soluzione?

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    La ricerca della soluzione passa dalle regole di addizione/sottrazione dei valori con modulo e segno. Chiarite le regole, dopo si possono applicare.

    Conosci queste regole? Sono indicate in

    http://www.google.it/url?sa=t&rct=j&...yst5ojPOV-QFzQ
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2012
    Messaggi
    5
    Si ho consultato quel file varie volte, ma in ogni caso non se ne può estrapolare un algoritmoo sintetizzabile in assembler

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Non si può? Ne sei sicuro?

    Comincia ad elencare le regole qui e ne parliamo ...
    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 © 2025 vBulletin Solutions, Inc. All rights reserved.