Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
vivo X300 Pro rappresenta un'evoluzione misurata della serie fotografica del produttore cinese, con un sistema di fotocamere migliorato, chipset Dimensity 9500 di ultima generazione e l'arrivo dell'interfaccia OriginOS 6 anche sui modelli internazionali. La scelta di limitare la batteria a 5.440mAh nel mercato europeo, rispetto ai 6.510mAh disponibili altrove, fa storcere un po' il naso
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2 è la nuova handheld PC gaming con processore AMD Ryzen Z2 Extreme (8 core Zen 5/5c, GPU RDNA 3.5 16 CU) e schermo OLED 8,8" 1920x1200 144Hz. È dotata anche di controller rimovibili TrueStrike con joystick Hall effect e una batteria da 74Wh. Rispetto al dispositivo che l'ha preceduta, migliora ergonomia e prestazioni a basse risoluzioni, ma pesa 920g e costa 1.299€ nella configurazione con 32GB RAM/1TB SSD e Z2 Extreme
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
A re:Invent 2025, AWS mostra un’evoluzione profonda della propria strategia: l’IA diventa una piattaforma di servizi sempre più pronta all’uso, con agenti e modelli preconfigurati che accelerano lo sviluppo, mentre il cloud resta la base imprescindibile per governare dati, complessità e lock-in in uno scenario sempre più orientato all’hybrid cloud
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 03-09-2005, 11: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, 13: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, 12: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, 08: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, 09: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, 17: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, 18: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, 18: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, 20: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 vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria Recensione vivo X300 Pro: è ancora lui il...
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'...
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti AWS re:Invent 2025: inizia l'era dell'AI-as-a-Se...
Cos'è la bolla dell'IA e perché se ne parla Cos'è la bolla dell'IA e perché se...
BOOX Palma 2 Pro in prova: l'e-reader diventa a colori, e davvero tascabile BOOX Palma 2 Pro in prova: l'e-reader diventa a ...
Vi hanno regalato buoni Amazon? Intanto ...
Via acari, polvere e sporco da materassi...
Cuffie Beats in super offerta su Amazon,...
Xbox Cloud Gaming arriva su Amazon Fire ...
Un blackout a San Francisco manda in til...
Windows 11 è diventato più...
Apple cambia strategia a causa della cri...
007 First Light: uscita rimandata di due...
Samsung Galaxy A37 e A57: il comparto fo...
DAZN lancia la sua offerta di Natale: My...
Gigabyte fa marcia indietro? Sparito il ...
Alcuni rivenditori giapponesi bloccano l...
Le feste non placano Amazon, anzi: aggio...
Roborock Q10 S5+ a un super prezzo: robo...
Formula sceglie WINDTRE BUSINESS per gar...
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: 09:03.


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