Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione Samsung Galaxy Z Fold8 Ultra: il pieghevole più famoso diventa quasi perfetto
Recensione Samsung Galaxy Z Fold8 Ultra: il pieghevole più famoso diventa quasi perfetto
Samsung rinnova la serie pieghevole di punta con Galaxy Z Fold8 Ultra: pannello interno da 8 pollici quasi senza piega, cerniera Flex Titanium, Snapdragon 8 Elite Gen 5 for Galaxy e batteria finalmente da 5.000 mAh. Prezzo italiano da 2.299 a 2.899 euro. Tra colorimetro, benchmark reali e giorni di uso quotidiano, ecco dove questo pieghevole convince e dove il nome Ultra fatica ancora a trovare piena giustificazione
Insta360 X6: Dolby Vision, 8K e montaggio "Zero Editing"
Insta360 X6: Dolby Vision, 8K e montaggio "Zero Editing"
La nuova Insta360 X6 introduce sensori Sony da 1/1.1" e un SoC Triple AI a 4nm. Analizziamo le riprese 8K, il primo Dolby Vision nativo a 10-bit nel settore sferico e l'innovativo flusso di lavoro diretto sulla futura versione 22 di DaVinci Resolve.
Due settimane con Dacia Spring 2026: novità, consumi, autonomia reale e test bagagli
Due settimane con Dacia Spring 2026: novità, consumi, autonomia reale e test bagagli
Dopo due settimane trascorse al volante della Dacia Spring 2026 possiamo raccontarvi tutto, dalle novità di motore e batteria, fino ai consumi in tutti le situazioni, compresa l'autonomia reale ad alta velocità
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 03-09-2005, 10:34   #1
HellGauss
Junior Member
 
Iscritto dal: May 2005
Messaggi: 6
assembler e compilatori

Salve a tutti, sono un programmatore dilettante che ha imparato ad usare il visualC++ di MS in maniera autonoma, leggendo ogni tanto qualche libro e sfogliando l'help delle msdn. Avevo però intenzione di passare ad una suite di lavoro opensource o cmq free, anche per scelta ideologica. Mi sono buttato su dev-cpp, con il proposito di imparare ad usare le Qt, che pare siano le librerie del futuro. Fin qui nessun problema.

Il problema è che a volte, per aumentare la velocità, scrivevo codice direttamente in assembler. Il compilatore di MS supporta però una sintassi asm (la sintassi 'Intel') diversa da quella del compilatore di dev-cpp (mi pare sia il gcc, che in assembler supporta sintassi 'at&t'). Non ho il tempo materiale di imparare una nuova sintassi asm (tra l'altro tutti gli esempi di codice asm che scarico sono in modalità 'intel').

C'è una maniera veloce per far funzionare questo pezzo di codice, che su visual studio funziona benissimo, ma su devcppp dà errore?

__asm // rr ii r i 4 tmp
{
finit;
fld1;
fadd st(0),st(0);
fadd st(0),st(0);
fld i;
fld r;
fldz;
fldz;
mov ecx,maxit;
label1:
fst st(5);
fmul st(0),st(0);
fxch st(1);
fst st(6)
fmul st(0),st(0);
fadd st(0),st(1);

fcomi st,st(4);
ja label2;

fsub st(0),st(1);
fsub st(1),st(0);
fxch st(5);
fmul st(0),st(6);
fadd st(0),st(0);
fadd st(0),st(3);
fxch st(1);
fadd st(0),st(2);

dec ecx;
jecxz label2;
jmp label1;

label2:
mov t,ecx;
}

Il programma completo è qui (sono una manciata di kb):

http://xoomer.virgilio.it/jbgenov/mand.cpp

Ciao a tutti e grazie!
HG
HellGauss è offline   Rispondi citando il messaggio o parte di esso
Old 03-09-2005, 12:20   #2
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
http://racl.oltrelinux.com/tutorial/gas.html
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 04-09-2005, 11:38   #3
lovaz
Senior Member
 
L'Avatar di lovaz
 
Iscritto dal: Jul 2002
Messaggi: 4334
Un consiglio, comunque: usa linguaggi di alto livello, quando possibile.
lovaz è offline   Rispondi citando il messaggio o parte di esso
Old 05-09-2005, 07:50   #4
HellGauss
Junior Member
 
Iscritto dal: May 2005
Messaggi: 6
Devo per forza usare l'assembler. Ho scritto un programma analogo con interfaccia grafica per creare frattali a colori e stamparli su grande formato. Alcune elaborazioni mi hanno richiesto più di una settimana di cpu. La routine in c era sette volte più lenta a causa di inutili accessi alla memoria, quindi inutilizzabile.

Il programma era scritto su MS Visual Studio con le api di windows. Volevo passare a qt e a suite libere, solo che il dev-cpp e anche eclipse supportano una sintassi diversa dell'assembler inline. Ho letto di un opzione da passare da riga di comando a gcc ( -masm=intel ), ma non funziona.
Ho letto anche in giro che la sintassi intel può venire usata in modi differenti dal mio. Ad esempio asm invece di __asm, oppure __asm__, oppure con asm("....") invece di asm{....}.

Speravo di trovare un modo per far capire l'assembler intel a gcc, ma mi pare di aver capito che non è possibile.

In ogni caso grazie per le risposte.
HG
HellGauss è offline   Rispondi citando il messaggio o parte di esso
Old 05-09-2005, 08:20   #5
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
Ti ci vuole davvero poco a tradurla, basta farti uno schema...

Comunque: http://www.niksula.cs.hut.fi/~mtiihone/intel2gas/
Google rules
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 05-09-2005, 16:36   #6
HellGauss
Junior Member
 
Iscritto dal: May 2005
Messaggi: 6
Quel programmino mi pare sia per linux..... :-(
Cmq mi armo di tanta pazienza e provo a tradurre il codice. Forse è vero.... non è così difficile. Nel caso tra qlc giorno se non va ripesco il topic e torno a rompervi le scatole :-)

A presto e grazie
HG
HellGauss è offline   Rispondi citando il messaggio o parte di esso
Old 13-09-2005, 17:26   #7
HellGauss
Junior Member
 
Iscritto dal: May 2005
Messaggi: 6
UP :-)

Ho cambiato il codice iniziale con questo, e ho aggiunto l'opzione -masm=intel alle opzioni di compilazione.

__asm // rr ii r i 4 tmp

(
"finit;"
"fld1;"

"fadd st(0),st(0);"
"fadd st(0),st(0);"
"fld i;"
"fld r;"
"fldz;"
"fldz;"
"mov ecx,maxit;"

"label1:"
"fst st(5);"
"fmul st(0),st(0);"
"fxch st(1);"
"fst st(6)"
"fmul st(0),st(0);"
"fadd st(0),st(1);"

"fcomi st,st(4);"
"ja label2;"

"fsub st(0),st(1);"
"fsub st(1),st(0);"
"fxch st(5);"
"fmul st(0),st(6);"
"fadd st(0),st(0);"
"fadd st(0),st(3);"
"fxch st(1);"
"fadd st(0),st(2);"

"dec ecx;"
"jecxz label2;"
"jmp label1;"

"label2:"
"mov t,ecx;"
);

Sicuramente ha riconosciuto la sintassi intel, dato che senza l'opzione mi dava numerosi errori. Con questo mi da solo:
suffix or operands invalid for 'fst'
La suite di lavoro è dev-cpp
HellGauss è offline   Rispondi citando il messaggio o parte di esso
Old 13-09-2005, 17:42   #8
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
Devi aggiungerela la dimensione degli operatori quando non è già esplicita...ora non mi ricordo bene... Comunque deve aggiungere una lettera (che non ricordo) alle istruzioni a seconda se vuoi operare a 32, 64 o 80 bit...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 13-09-2005, 19:05   #9
HellGauss
Junior Member
 
Iscritto dal: May 2005
Messaggi: 6
Era un ;..... ho la testa fusa.
Il fatto è che risolvo un problema e me se ne pone un altro.
Messo il ; non mi trovava le variabili esterne, dandomi un errore in fase di link. Con l'aiuto di google ho risolto anche quello. Però ora il programma mi va inspiegabilmente lento, e l'output non è quello che deve essere (però non da errore). Ho provato a fare un debug con dev-cpp, ma non posso andare a vedere cosa succede nel codice assembler (con msvc potevo farlo..... )
Penso che dovrò sbattere la testa ancora a lungo.....
HellGauss è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione Samsung Galaxy Z Fold8 Ultra: il pieghevole più famoso diventa quasi perfetto Recensione Samsung Galaxy Z Fold8 Ultra: il pieg...
Insta360 X6: Dolby Vision, 8K e montaggio "Zero Editing" Insta360 X6: Dolby Vision, 8K e montaggio "...
Due settimane con Dacia Spring 2026: novità, consumi, autonomia reale e test bagagli Due settimane con Dacia Spring 2026: novit&agrav...
AORUS GeForce RTX 5080 INFINITY WOOD 16G: una scheda video diversa dalle altre AORUS GeForce RTX 5080 INFINITY WOOD 16G: una sc...
Hyundai Ioniq 9: dopo due settimane di test non avremmo voluto restituirla Hyundai Ioniq 9: dopo due settimane di test non ...
Vogliono costruire un monumento per Elon...
Ring Intercom Audio crolla a 39,99€ su A...
La Francia blocca il divieto dei social ...
Trump citato in giudizio: chiesto lo sto...
PEC obbligatoria per revisione e passagg...
Il ripulitore di watermark Claude da 4.5...
Xiaomi 17 Ultra scambia il Sole per la L...
È arrivata la migliore e-bike Eng...
Apple Mac mini M4, ecco perché conviene ...
Robot aspirapolvere in offerta su Amazon...
Il nuovo pick-up elettrico di Ford &egra...
Google Pixel 11 arriva su Amazon: preord...
Mega sconti su attrezzi a batteria e rob...
Google Search dà per morto Sam Al...
Il noleggio delle GPU NVIDIA si quota in...
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: 16:49.


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