Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator
Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator
Dopo oltre 4 anni si rinnova la serie Sony Alpha 7 con la quinta generazione, che porta in dote veramente tante novità a partire dai 30fps e dal nuovo sensore partially stacked da 33Mpixel. L'abbiamo provata per un breve periodo, ecco come è andata dopo averla messa alle strette.
realme GT 8 Pro Dream Edition: prestazioni da flagship e anima racing da F1
realme GT 8 Pro Dream Edition: prestazioni da flagship e anima racing da F1
realme e Aston Martin Aramco F1 Team si sono (ri)unite dando alla vita un flagship con chip Snapdragon 8 Elite Gen 5 e design esclusivo ispirato alle monoposto di Formula 1. La Dream Edition introduce la nuova colorazione Lime Essence abbinata al tradizionale Aston Martin Racing Green, decorazioni intercambiabili personalizzate e una confezione a tema F1, intorno a uno smartphone dall'ottima dotazione tecnica con batteria da 7000mAh ricaricabile a 120W e isola fotografica intercambiabile
OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum
OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum
Abbiamo partecipato all'OVHcloud Summit 2025, conferenza annuale in cui l'azienda francese presenta le sue ultime novità. Abbiamo parlato di cloud pubblico e privato, d'intelligenza artificiale, di computer quantistici e di sovranità. Che forse, però, dovremmo chiamare solo "sicurezza"
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 22-10-2005, 02:24   #41
cj++
Member
 
L'Avatar di cj++
 
Iscritto dal: Sep 2005
Città: Barcelona
Messaggi: 200
Probabilmente qualnque ambiente di sviluppo C lo fa, senza necessità di utilizzare strumenti cosi costosi.

Sicuramente è corretto... se no nn funzionerebbe

Se nn riesci direttamente in assembly, potresti usarlo come utlima risorsa o cmq per confrontare quello che scrivi tu con quello scritto dalla macchina.
__________________
Code without tests is broken by design.
cj++ è offline   Rispondi citando il messaggio o parte di esso
Old 22-10-2005, 09:46   #42
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da Lupino.86
Io intendo dire proprio questo per moltiplicazione binaria ..... ma stando a quanto dice cionci:
Io anche detto che per moltiplicazione binaria puoi intendere l'algoritmo che usa la ALU per moltiplicare due numeri...leggi sopra... Se devi implementare quell'algoritmo senza usare l'istruzione IMUL finalmente abbiamo capito cosa devi fare...

Ultima modifica di cionci : 22-10-2005 alle 09:49.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 22-10-2005, 09:48   #43
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da cj++
Probabilmente qualnque ambiente di sviluppo C lo fa, senza necessità di utilizzare strumenti cosi costosi.
Se lui deve realizzare un algoritmo di moltiplicazione in Assembly dubito che realizzarlo ad alto livello e poi confrontarlo gli sia molto facile...anche perchè la differenza fra il suo algoritmo programmato direttamente in assembly e quello scritto ad alto livello e poi tradotto in assembly sarebbe abissale...
Conta che l'io ci sarebbero le chiamate a funzione...e quindi sarebbe ancora meno confrontabile...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 22-10-2005, 16:30   #44
Lupino.86
Senior Member
 
L'Avatar di Lupino.86
 
Iscritto dal: May 2002
Messaggi: 2370
Quote:
Originariamente inviato da cionci
Io anche detto che per moltiplicazione binaria puoi intendere l'algoritmo che usa la ALU per moltiplicare due numeri...leggi sopra... Se devi implementare quell'algoritmo senza usare l'istruzione IMUL finalmente abbiamo capito cosa devi fare...
Non posso darti nessuna sicurezza perchè la prof non ha obbligato l'uso di nessuna istruzione, cioè non mi ha detto di usare per forza l'istruzione ZZZ..... posso usare anche l'istruzione YYY, l'importante è che il risultato è giusto e che la traccia venga rispettata
Lupino.86 è offline   Rispondi citando il messaggio o parte di esso
Old 22-10-2005, 16:36   #45
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Allora non ho ancora capito cosa deve fare il codice... Creare l'algoritmo di moltiplicazione binaria (in tal caso non devi usare l'istruzione MUL visto che applica già l'algoritmo sui due registri) o fare la moltiplicazione fra due numeri (con l'istruzione MUL) ?!?!?
Chiarisciti con lei e poi ne riparliamo...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 22-10-2005, 16:48   #46
Lupino.86
Senior Member
 
L'Avatar di Lupino.86
 
Iscritto dal: May 2002
Messaggi: 2370
Quote:
Originariamente inviato da cj++
Probabilmente qualnque ambiente di sviluppo C lo fa, senza necessità di utilizzare strumenti cosi costosi.
Farlo in C è facilissimo, lo so benissimo....... il problema è che la prof. ESIGE l'assembler
Lupino.86 è offline   Rispondi citando il messaggio o parte di esso
Old 22-10-2005, 23:59   #47
Lupino.86
Senior Member
 
L'Avatar di Lupino.86
 
Iscritto dal: May 2002
Messaggi: 2370
Quote:
Originariamente inviato da cionci
Allora non ho ancora capito cosa deve fare il codice... Creare l'algoritmo di moltiplicazione binaria (in tal caso non devi usare l'istruzione MUL visto che applica già l'algoritmo sui due registri) o fare la moltiplicazione fra due numeri (con l'istruzione MUL) ?!?!?
Chiarisciti con lei e poi ne riparliamo...
Forse nn nn mi sono ancora spiegato bene: la moltiplicazione deve essere eseguita a livello binario cioè con numeri binari come nell'esempuio sottostante:

5 = 00000101 * ---> primo INPUT
2 = 00000010 = ---> secondo INPUT
_________
10 = 00000110 ----> stampo 10 come risultato

Cioè il programma deve convertire in binario i due operandi, moltiplicare con i numeri binari (sempre a livello binario) e stampare a video il numero decimale a sua volta convertito da binario a decimale
Lupino.86 è offline   Rispondi citando il messaggio o parte di esso
Old 23-10-2005, 00:45   #48
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
Quote:
Originariamente inviato da Lupino.86
Io intendo dire proprio questo per moltiplicazione binaria ..... ma stando a quanto dice cionci:
se usi l'operatore MUL ha ragione cionci....
infatti noi abbiamo dovuto implementare l'operatore MUL ..
se poi devi fare pure tu quello allora è stato cionci a nn avere capito un kakkio km al solito!

(Ora s'inkazza e mi banna! )
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 23-10-2005, 01:48   #49
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
Quote:
Originariamente inviato da repne scasb
Per assembly x8 potrebbe essere questa?

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
l'assembly x86 purtroppo non l'ho mai studiato ... ho solo fatto qualke kazzatina con assembly x SPARC e x 68000 all'univ..
cmq provo a interpretare quello ke hai scritto e dimmi se ho interpretato bene....
mov ax,word ptr [_val1]
sposta nel registro ax il primo operando
movzx ebx,word ptr [_val2]
la movzx non l'ho mai vista... ... meno male ke c'è santo google .. ho visto ke sposta in ebx il secondo operando riempiendolo di zeri a sinistra...(sempre se nn ho capito male ... )
mov cx,1h
mette nel registro cx il valore 1h (nell'assembly x86 era possibile assegnare un valore in maniera immediata in questo modo? nn lo sapevo proprio..pensavo lo facessero solo i 68000 kn uno dei loro TANTI modi di indirizzamento.. )
xor edx,edx
??? e questa? azzera il contenuto di edx ???
loop_mul confronta ax e cx.... se sono uguali va in no_add_mul (quindi esce dal ciclo)
loop_mul:
test ax,cx
je no_add_mul
add edx,ebx
somma i registri edx e ebx mettendo il risultato nel primo....(al primo ciclo copia il contenuto di ebx in edx dato ke edx è 0 se nn ho capito male...)

no_add_mul:
add ebx,ebx
somma ebx con se stesso...
add cx,cx
somma cx con se stesso... (non ci sto capendo più un kakkio.. non doveva essere add cx, 1h??? )
jne loop_mul
ritorna all'inizio del ciclo... non mi kiedere in base a cosa fa il confronto che non ho la minima idea..... forse sempre ax e cx????
mov dword ptr [_result],edx
mette il risultato in edx....



ora.. se non ho capito male praticamente stai facendo la somma ax volte di ebx... praticamente per fare 12 X 10 sommi 12 volte 10 a se stesso...
io quando avevo implementato l'operazione avevo usato un'altra tecnica...
ad esempio...
per moltiplicare un numero per le potenze di due shiftavamo il numero a sinistra di un numero di bit pari alla potenza di due per cui veniva moltiplicato....
praticamente...
3=011 2=010 3*2=6=110 --> ottenuto shiftando a sinistra 011 di un bit
3=011 4=010 3*4=12=1100 --> ottenuto shiftando a sinistra 011 di due bit
5=0101 4=0010 5*4=20=10100 -->ottenuto shiftando a sinistra 0101 di due bit
e così via...
per moltiplicare numeri ke non siano potenze di due avevamo trovato un metodo abbastanza simile.... sola ke ora km ora mi sfugge...
e questo è sicuramente + efficiente ke sommare il num per sè stesso x n volte...
ma scommetto ke ovviamente lo sapevi già e hai scritto quel codice poco efficiente solo per vedere se qualcuno si prendeva la briga di controllare..
se è ks visto ke c 6 ricordami km si procedeva x moltiplicare numeri qualsiasi ke non siano potenze di due ks intanto io faccio riposare un pò i miei neuroni stanki
__________________

Ultima modifica di ^TiGeRShArK^ : 23-10-2005 alle 01:50.
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 23-10-2005, 10:07   #50
repne scasb
Bannato
 
Iscritto dal: Feb 2003
Messaggi: 947
Quote:
Originariamente inviato da ^TiGeRShArK^
mov ax,word ptr [_val1]
sposta nel registro ax il primo operando
Ok

Quote:
movzx ebx,word ptr [_val2]
la movzx non l'ho mai vista... ... meno male ke c'è santo google .. ho visto ke sposta in ebx il secondo operando riempiendolo di zeri a sinistra...(sempre se nn ho capito male ...
Ok

Quote:
mov cx,1h
mette nel registro cx il valore 1h (nell'assembly x86 era possibile assegnare un valore in maniera immediata in questo modo? nn lo sapevo proprio..pensavo lo facessero solo i 68000 kn uno dei loro TANTI modi di indirizzamento..
Ok

Quote:
xor edx,edx
??? e questa? azzera il contenuto di edx ???
Si, azzera edx.

Quote:
loop_mul confronta ax e cx.... se sono uguali va in no_add_mul (quindi esce dal ciclo)[CUT....]
No. test ax,cx e' diverso da cmp ax,cx; ossia e' un confronto bit a bit.

Quote:
ora.. se non ho capito male praticamente stai facendo la somma ax volte di ebx... praticamente per fare 12 X 10 sommi 12 volte 10 a se stesso...
Mica sono matta. per fare 1*1.000.000.000 sommerebbe 1 un miliardo di volte!

supponi di voler moltiplicare 21.167 * 18.529. In notazione binaria avremo:

101001010101111 * (21167)
100100001100001 = (18529)
-------------------

noterai ce 18529 ha settati a 1 solo i bit 14,11,6,5,0, da cui si evince che:

18529=2^14+2^11+2^6+2^5+2^0, da cui:

21167 * 18529= 21167*(2^14+2^11+2^6+2^5+2^0) da cui:

21167 *18529= 21167*2^14 + 21167*2^11 + 21167*2^6 +21167*2^5+21167*2^0 da cui:

21167 * 18529= 21167 shift a sinistra di 14 + 21167 shift a sinistra di 11 + 21167 shift a sinistra di 6 + 21167 shift a sinistra di 5 + 21167 shift a sinistra di 0 da cui:

21167 * 18529 = 346800128 + 43350016 + 1354688 + 677344 + 21167 = 392203343

L'algoritmo in assembly x86 fa esattamente questo (chiaramente per qualsiasi valore degli operando). Spero sia chiaro.

Ultima modifica di repne scasb : 23-10-2005 alle 10:11.
repne scasb è offline   Rispondi citando il messaggio o parte di esso
Old 23-10-2005, 11:05   #51
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da Lupino.86
Forse nn nn mi sono ancora spiegato bene: la moltiplicazione deve essere eseguita a livello binario cioè con numeri binari come nell'esempuio sottostante:

5 = 00000101 * ---> primo INPUT
2 = 00000010 = ---> secondo INPUT
_________
10 = 00000110 ----> stampo 10 come risultato

Cioè il programma deve convertire in binario i due operandi, moltiplicare con i numeri binari (sempre a livello binario) e stampare a video il numero decimale a sua volta convertito da binario a decimale
Allora DEVI usare l'operatore MUL...ma come ti ripeto NON AVVIENE NESSUNA CONVERSIONE IN BINARIO !!! O meglio, avviene ma implicita nella lettura del carattere da tastiera... Quindi il tuo programma non dovrà effettuare nessuna conversione da decimale a binario e da binario a decimale... I contenuti dei registri li devi trattare (in questo caso) come semplici numeri naturali...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 23-10-2005, 12:05   #52
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
Quote:
Originariamente inviato da repne scasb
L'algoritmo in assembly x86 fa esattamente questo (chiaramente per qualsiasi valore degli operando). Spero sia chiaro.
ok... l'algoritmo è perfettmente chiaro.
l'implementazione in assembly mi devo mettere con calma per capirla....
ci provo pomeriggio
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 23-10-2005, 13:38   #53
Lupino.86
Senior Member
 
L'Avatar di Lupino.86
 
Iscritto dal: May 2002
Messaggi: 2370
Quote:
Originariamente inviato da cionci
Allora DEVI usare l'operatore MUL...ma come ti ripeto NON AVVIENE NESSUNA CONVERSIONE IN BINARIO !!! O meglio, avviene ma implicita nella lettura del carattere da tastiera... Quindi il tuo programma non dovrà effettuare nessuna conversione da decimale a binario e da binario a decimale... I contenuti dei registri li devi trattare (in questo caso) come semplici numeri naturali...
E questo l'ho capito!
ma per usare i numeri binari, che istruzione devo usare?
Come andrebeb strutturato il codice???
Lupino.86 è offline   Rispondi citando il messaggio o parte di esso
Old 23-10-2005, 13:40   #54
Lupino.86
Senior Member
 
L'Avatar di Lupino.86
 
Iscritto dal: May 2002
Messaggi: 2370
Quote:
Originariamente inviato da ^TiGeRShArK^
ok... l'algoritmo è perfettmente chiaro.
l'implementazione in assembly mi devo mettere con calma per capirla....
ci provo pomeriggio
Anche tu hai lo stesso mio problema?
Lupino.86 è offline   Rispondi citando il messaggio o parte di esso
Old 23-10-2005, 15:29   #55
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
no no... io sono semplicemente masochista!

era da un pò ke non toccavo l'assembly e volevo cercare di ricordarmi qualkosa
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 23-10-2005, 16:13   #56
Lupino.86
Senior Member
 
L'Avatar di Lupino.86
 
Iscritto dal: May 2002
Messaggi: 2370
Quote:
Originariamente inviato da ^TiGeRShArK^
no no... io sono semplicemente masochista!

era da un pò ke non toccavo l'assembly e volevo cercare di ricordarmi qualkosa
Mi piace a tua mentalità!
Lupino.86 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator Sony Alpha 7 V, anteprima e novità della ...
realme GT 8 Pro Dream Edition: prestazioni da flagship e anima racing da F1 realme GT 8 Pro Dream Edition: prestazioni da fl...
OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum OVHcloud Summit 2025: le novità del cloud...
Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI C...
DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro DJI Neo 2 in prova: il drone da 160 grammi guada...
Una tecnologia spaziale verrà uti...
Anche a Bergamo controlli sulle e-bike: ...
Mario Kart World, con l'ultimo aggiornam...
Oracle apre una seconda Region per il cl...
Euro NCAP 2026, cambiano completamente i...
In Russia centinaia di Porsche diventano...
Gli operatori mobile italiani offrono se...
realme GT 8 Pro in promo lancio con 100€...
Autostrade, dal 2026 arrivano i rimborsi...
Carenza di memoria flash NAND e prezzi a...
EA Sports FC 26 fa felici i fan: tornano...
Anthropic studia i suoi ingegneri: l'IA ...
Kioxia Exceria Plus G4: l'SSD PCIe 5.0 p...
HBO Max debutta in Italia: data, contenu...
Qual è lo smartphone Android pi&u...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 18:42.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v