Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura
Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura
Il primo Micro RGB di Samsung per il salotto è il 65 pollici da 2.749 euro. Sul banco di misura abbiamo rilevato 2.000 nit di picco, nero assoluto con il local dimming e il 91,4% del BT.2020, il colore più ampio che abbiamo misurato su un LCD
iPhone 18 Pro: la recensione del miglior iPhone compatto di sempre
iPhone 18 Pro: la recensione del miglior iPhone compatto di sempre
Apple ha rinnovato iPhone 18 Pro soprattutto dentro: chip A20 Pro a 2 nm con memoria affiancata al SoC, camera di vapore tre volte più ampia, Dynamic Island più piccola del 25% grazie a Face ID sotto il display e fotocamera principale con diaframma variabile da f/1.48 a f/4. Lo abbiamo misurato al colorimetro e nei benchmark, usato con iOS 27 e messo alla prova in fotografia tra laghi, borghi e interni poco illuminati
Panasonic, 30 anni di Toughbook: la "Bibbia" di mille regole dietro i nuovi G3 e 34
Panasonic, 30 anni di Toughbook: la "Bibbia" di mille regole dietro i nuovi G3 e 34
A Londra, per il trentennale dei Toughbook, Panasonic ha presentato il tablet G3 e il 2-in-1 34. Con Jon Tucker, a capo dell'ingegneria europea, abbiamo parlato di ciò che non si vede: batterie, antenne, porte seriali e accorgimenti nati sul campo
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


Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura Samsung Micro RGB R95H, il primo LCD a LED rossi...
iPhone 18 Pro: la recensione del miglior iPhone compatto di sempre iPhone 18 Pro: la recensione del miglior iPhone ...
Panasonic, 30 anni di Toughbook: la "Bibbia" di mille regole dietro i nuovi G3 e 34 Panasonic, 30 anni di Toughbook: la "Bibbia...
realme C100x, lo smartphone economico con la batteria da 7500 mAh. La recensione realme C100x, lo smartphone economico con la bat...
Star Wars Zero Company è l'erede di XCOM 2 Star Wars Zero Company è l'erede di XCOM ...
300 milioni di dollari di server NVIDIA ...
'Io sono Giorgia': la Premier Meloni reg...
Galaxy S27 Ultra con Exynos 2700, Samsun...
Altman: tra OpenAI e Anthropic sulla sic...
Tesla Robotaxi, la notte è ancora...
Huawei e Qualcomm firmano un accordo sui...
Benessere sul posto di lavoro: la situaz...
La corsa nei computer quantistici si spo...
Dopo 6 anni non hanno trovato niente: si...
Nuovo accordo tra Qualcomm e Huawei sui ...
Battlefield al cinema: Sony in trattativ...
Siri AI su iPhone e iPad si farà attende...
Core Ultra 4000 anche sui notebook, ma n...
Kolibri-1: nuovo LLM a pesi aperti con 7...
tado° in offerta Prime: 3 valvole te...
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: 22:06.


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