|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#21 | |
|
Member
Iscritto dal: Sep 2005
Città: Barcelona
Messaggi: 200
|
Quote:
vs lo fa ad esempio, ma probabilmente anche molti altri
__________________
Code without tests is broken by design. |
|
|
|
|
|
|
#22 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
Cioè se io leggo il carattere ASCII '5' da tastiera e poi ci sottraggo il carattere ASCII '0' ottengo il numero 5 (5 è 5 rappresentato in decimale, 5 in ottale, 5 in esadecimale, 101 in binario)...leggo il carattere ASCII '8' da tastiera e poi ci sottraggo il carattere ASCII '0' ottengo il numero 8 (8 è 8 rappresentato in decimale, 10 in ottale, 8 in esadecimale, 1000 in binario)... Li moltiplico fra loro: 8 x 5 è 40 in decimale, 50 in ottale, 28 in esadecimale, 101000 in binario Ma i numeri sono sempre numeri...la base è solo una questione di rappresentazione del numero... Quindi puoi dire: prendo due numeri decimali da tastiera, li moltiplico fra di loro e stampo il risultato in decimale... Puoi dire anche: prendo due numeri ottali da tastiera, li moltiplico fra di loro e stampo il risultato in esadecimale... Ma non puoi dire: prendo due numeri decimali da tastiera, li converto in binario (questa conversione non avviene !!! Ma avviene una conversione da carattere ASCII a intero), li moltiplico in binario (una moltiplicazione è indipendente dalla rappresentazione) fra di loro e il risultato lo converto da binario a decimale (anche questa non avviene, perchè avviene una conversione da numero intero a carattere ASCII) e lo stampo... Insomma...un numero è sempre un numero qualsiasi rappresentazione tu scelga...ed una moltiplicazione, presa come operazione, è sempre una moltiplicazione qualsiasi rappresentazione tu scelga degli operandi e del risultato... Devi considerare la natura binaria dei registri e della memoria solo quando vai a fare una operazione bit a bit... Per carità, puoi chiamare moltiplicazione binaria l'algoritmo che moltiplica due operandi binari (quello che avviene nella ALU della CPU) e implementarlo tramite codice, ma non mi sembra che sia quello che tu vuoi fare... |
|
|
|
|
|
|
#23 | |
|
Senior Member
Iscritto dal: May 2002
Messaggi: 2370
|
Quote:
Vallo a dire alla mia prof. e vedi che continuerà ad insistere sul calcolo binario dei numeri: è come se vuole vedere gli 0 e gli 1 che si moltiplicano! Tu cosa mi consigli di fare? Acquisisco, moltiplico e stampo sempre in decimale? |
|
|
|
|
|
|
#24 | |
|
Senior Member
Iscritto dal: May 2002
Messaggi: 2370
|
Quote:
Il compilatore che usiamo è il TASM. VS è il nime del programma che traduce da C ad Assembler? Cmq c'è differenza tra Assembly e Assembler: il primo è per Linux!!! |
|
|
|
|
|
|
#25 | ||
|
Bannato
Iscritto dal: Feb 2003
Messaggi: 947
|
Quote:
Quote:
2) Converte le stringhe decimali in interi a 32-bit. 3) Moltiplica i due interi a 32-bit e ottiene un intero a 64-bit. 4) Visualizza a video l'intero a 64-bit in formato decimale. Prova l'eseguibile nella shell del tuo sistema operativo cosi' ti apparira' piu' chiaramente cosa e' in grado di fare. |
||
|
|
|
|
|
#26 | |||
|
Senior Member
Iscritto dal: May 2002
Messaggi: 2370
|
Quote:
Quote:
Quote:
|
|||
|
|
|
|
|
#27 | |
|
Bannato
Iscritto dal: Feb 2003
Messaggi: 947
|
Quote:
|
|
|
|
|
|
|
#28 | ||
|
Senior Member
Iscritto dal: May 2002
Messaggi: 2370
|
[quote=repne scasb]Vedo, che sempre meno persone utilizzano le shell messe a disposizione del proprio sistema operativo.
Quote:
Quote:
.....nn ti sto chiedendo m ica di farlo nè di abusare della tua pazienza e disponiblità!Ora mi devo studiare solo il 96% delle istruzioni che nn conosco Ultima modifica di Lupino.86 : 21-10-2005 alle 16:14. |
||
|
|
|
|
|
#29 | |
|
Bannato
Iscritto dal: Feb 2003
Messaggi: 947
|
Quote:
|
|
|
|
|
|
|
#30 | |
|
Senior Member
Iscritto dal: May 2002
Messaggi: 2370
|
Quote:
Anche avviando 5 volte il programma, il risultato viene sempre scritto sulla stessa riga del secondo input |
|
|
|
|
|
|
#31 | |
|
Bannato
Iscritto dal: Feb 2003
Messaggi: 947
|
Quote:
2) Click con il tasto sinistro del mouse su Esegui. 3) Digita il comando CMD e quindi il tasto INVIO. 4) Se MUL.EXE si trova nella directory D:\Programmi\Prove digita: 4a) Digita D: quindi il tasto INVIO. 4b) Digita CD \Programmi\Prove quindi il tasto INVIO. 5) Digita MUL.EXE quindi il tasto INVIO <<<<<----- Questa prima volta non funzionera'. 6) Riesegui MUL.EE quindi il tasto INVIO <<<<<----- Questa volta funzionera'. 7) Digita EXIT quindi il tasto INVIO per chiudere la shell. |
|
|
|
|
|
|
#32 |
|
Senior Member
Iscritto dal: May 2002
Messaggi: 2370
|
Azzo è vero!
Ma chi sei? un mago? |
|
|
|
|
|
#33 |
|
Senior Member
Iscritto dal: Apr 2004
Messaggi: 984
|
A proposito di base, sarebbe utile ricordare che la conversione
da binario a esadecimale e viceversa è una conversione diretta. Mentre così non è per la conversione decimale binario ... Cioè invece di scrivere 11011001 in assembler si usa scrivere la cifra esadecimale C9, infatti una cifra esadecimale corrisponde a 4bit (nibble) Appropos i gruppi di bit si dividono così : 4 bit = nibble 8 bit = byte 16 bit = world 32 bit = dworld 64 bit = qword 80 bit = ten byte (usato nel coprocessore math) P.S. prima di mettere mano all' asm sarebbe utile acquistare un libro ASM 8086 Tipo quello della Jackson dove sono elencate tutte le istruzioni e il loro funzionamento ... Per poi passare alle istruzioni 386 estese a 32 bit, dopo si possono studiare anche le istruzioni dei pentuim/amd 64 bit ... (una guida di riferimento delle istruzioni a 64 bit stà sul sito intel) e anche uno sguardo alle istruzioni Floating point non sarebbe male, ma li la questione si fà complessa x la presenza di numeri in esponente e mantissa (binari !) normalizzati ... Ciao |
|
|
|
|
|
#34 | |
|
Senior Member
Iscritto dal: May 2002
Messaggi: 2370
|
Quote:
Quali metodi sarebbero migliori? |
|
|
|
|
|
|
#35 |
|
Senior Member
Iscritto dal: Apr 2004
Messaggi: 984
|
Purtroppo bisonga usare Google e cercare per diverse ore, soprattutto
sui siti americani, ovviamente in inglese Alla fine qualche buon programma si trova Io ad esempio, ai miei tempi - quando non c'era internet - mi sono rotto la testa nel cercare di scrivere un' algoritmo che convertisse i numeri esponente e mantissa normalizzati da decimale a binario e viceversa. In pratica tutti i linguaggi di programmazione la implementano, quando si acquisice una variabile di tipo float o double float e quando si stampa il risultato in decimale con virgola ... Ciao |
|
|
|
|
|
#36 |
|
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
ai tempi li mio prof ci aveva fatto implementare la moltiplicazione binaria in assembly SPARC nel senso che non potevamo usare l'operazione ma dovevamo agire direttamente sui bit (ora non mi ricordo il procedimento completo, ma per moltiplicazioni per potenze di due basta shiftare a sinistra di un numero di bit pari alla potenza di due... per gli altri numeri c'era una soluzione simile ma lievemente complicata che ora mi sfugge)...
quindi presumo che sia questo che viene inteso come moltiplicazione binaria... o no?
__________________
|
|
|
|
|
|
#37 | ||
|
Senior Member
Iscritto dal: May 2002
Messaggi: 2370
|
Quote:
Quote:
|
||
|
|
|
|
|
#38 | |
|
Bannato
Iscritto dal: Feb 2003
Messaggi: 947
|
Quote:
Codice:
; Moltiplicazione senza MUL/IMUL ; _val1,_val2 = Operandi ; _result = Risultato moltiplicazione mov ax,word ptr [_val1] movzx ebx,word ptr [_val2] mov cx,1h xor edx,edx loop_mul: test ax,cx je no_add_mul add edx,ebx no_add_mul: add ebx,ebx add cx,cx jne loop_mul mov dword ptr [_result],edx |
|
|
|
|
|
|
#39 | |
|
Member
Iscritto dal: Sep 2005
Città: Barcelona
Messaggi: 200
|
Quote:
VS (un IDE) è visual studio di Microsoft. Nn so gli altri IDE ma questo ti consente di disassemblare qualunque codice C/C++ al volo e di averne quindi una versione Assembly (o assembler come preferisci). In questo senso ti dicevo... potresti scriverlo in C e fartelo tradurre da un qualunque IDE (che lo faccia). Era solo un'idea cmq.
__________________
Code without tests is broken by design. |
|
|
|
|
|
|
#40 |
|
Senior Member
Iscritto dal: May 2002
Messaggi: 2370
|
La stessa idea mi è subito venuta appena la prof. ha finito di dettare la traccia, ma non sapendo come tradurre da C+ ad Assemplber 8lo so benissimo che ilC usa internamente l'assembler) ho acantonato l'idea.
Tu mi dici che con il Visual Studio potrei avere un sorgente in Assempler senza errori o incomprensioni software? |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 02:09.












.....nn ti sto chiedendo m ica di farlo nè di abusare della tua pazienza e disponiblità!








