Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione Samsung Galaxy Z Fold7: un grande salto generazionale
Recensione Samsung Galaxy Z Fold7: un grande salto generazionale
Abbiamo provato per molti giorni il nuovo Z Fold7 di Samsung, un prodotto davvero interessante e costruito nei minimi dettagli. Rispetto al predecessore, cambiano parecchie cose, facendo un salto generazionale importante. Sarà lui il pieghevole di riferimento? Ecco la nostra recensione completa.
The Edge of Fate è Destiny 2.5. E questo è un problema
The Edge of Fate è Destiny 2.5. E questo è un problema
Bungie riesce a costruire una delle campagne più coinvolgenti della serie e introduce cambiamenti profondi al sistema di gioco, tra nuove stat e tier dell’equipaggiamento. Ma con risorse limitate e scelte discutibili, il vero salto evolutivo resta solo un’occasione mancata
Ryzen Threadripper 9980X e 9970X alla prova: AMD Zen 5 al massimo livello
Ryzen Threadripper 9980X e 9970X alla prova: AMD Zen 5 al massimo livello
AMD ha aggiornato l'offerta di CPU HEDT con i Ryzen Threadripper 9000 basati su architettura Zen 5. In questo articolo vediamo come si comportano i modelli con 64 e 32 core 9980X e 9970X. Venduti allo stesso prezzo dei predecessori e compatibili con il medesimo socket, le nuove proposte si candidano a essere ottimi compagni per chi è in cerca di potenza dei calcolo e tante linee PCI Express per workstation grafiche e destinate all'AI.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 21-01-2008, 01:34   #1
Rank-1
Member
 
Iscritto dal: Jul 2005
Messaggi: 86
[assembly] __asm (non funziona con GCC)

Ciao a tutti.. siccome ho problemi con il compilatore GCC qualcuno per favore può convertirmi questo codice? ho visto che usa un'altra sintassi (AT&T?!) ma io non saprei proprio come cambiarlo xkè non conosco l'assembly.

__asm {
mov eax, addr
call addr
mov addr, eax
}

__asm {
mov eax, addr
push cbSize
push pInputs
push nInputs
call addr
mov addr, eax
}

grazie
Rank-1 è offline   Rispondi citando il messaggio o parte di esso
Old 21-01-2008, 07:58   #2
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Sintassi AT&T? Vade retro!

Usa NASM, che ti permette di usare quella "tradizionale" (Intel / MASM / TASM et similia).
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 21-01-2008, 09:17   #3
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 cdimauro Guarda i messaggi
Usa NASM, che ti permette di usare quella "tradizionale" (Intel / MASM / TASM et similia).
Ma non nel codice inline...
Comunque dovrebbe essere così, se mi ricordo bene.

__asm {
movl addr, %eax
call addr
movl %eax, addr
}

__asm {
movl addr, %eax
pushl cbSize
pushl pInputs
pushl nInputs
call addr
movl %eax, addr
}
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 21-01-2008, 09:52   #4
variabilepippo
Senior Member
 
L'Avatar di variabilepippo
 
Iscritto dal: Mar 2007
Messaggi: 1792
Quote:
qualcuno per favore può convertirmi questo codice?
Perché non lo chiedi direttamente al compilatore? Aggiungi l'opzione -masm=intel alla linea di comando di GCC:

gcc pippo.c -masm=intel

Codice:
// pippo.c
#include <stdio.h>
#include <string.h>

int main (void)
{

	__asm (
		"xor eax, eax\n"
		"mov ecx, 3\n"
	);
	return 0;
}
variabilepippo è offline   Rispondi citando il messaggio o parte di esso
Old 21-01-2008, 09:56   #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
Quote:
Originariamente inviato da variabilepippo Guarda i messaggi
Perché non lo chiedi direttamente al compilatore? Aggiungi l'opzione -masm=intel alla linea di comando di GCC:
Azz...non lo sapevo
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 21-01-2008, 09:58   #6
variabilepippo
Senior Member
 
L'Avatar di variabilepippo
 
Iscritto dal: Mar 2007
Messaggi: 1792
Quote:
Azz...non lo sapevo
Abbiamo sempre qualcosa di nuovo da imparare, ed il forum serve anche per questo...
variabilepippo è offline   Rispondi citando il messaggio o parte di esso
Old 21-01-2008, 10:13   #7
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Quote:
Originariamente inviato da variabilepippo Guarda i messaggi
Perché non lo chiedi direttamente al compilatore? Aggiungi l'opzione -masm=intel alla linea di comando di GCC:
Perché non è la fine della storia.
Da lì puoi accedere solo a variabili globali; le variabili locali devono essere passare come "input" secondo l'usuale sintassi asm/gcc.
Inoltre occorre specificare l'elenco dei registri "clobbered", se presenti.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 21-01-2008, 10:15   #8
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
C'è anche questo modo, che non richiede -masm=intel:
Codice:
asm(
    "  .intel_syntax noprefix  \n"
    <blocco asm...>
    "  .att_syntax             \n"
    <blocco in/out e clobbered>
);
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione Samsung Galaxy Z Fold7: un grande salto generazionale Recensione Samsung Galaxy Z Fold7: un grande sal...
The Edge of Fate è Destiny 2.5. E questo è un problema The Edge of Fate è Destiny 2.5. E questo ...
Ryzen Threadripper 9980X e 9970X alla prova: AMD Zen 5 al massimo livello Ryzen Threadripper 9980X e 9970X alla prova: AMD...
Acer TravelMate P4 14: tanta sostanza per l'utente aziendale Acer TravelMate P4 14: tanta sostanza per l'uten...
Hisense M2 Pro: dove lo metti, sta. Mini proiettore laser 4K per il cinema ovunque Hisense M2 Pro: dove lo metti, sta. Mini proiett...
WhatsApp, una taglia da 1 milione di dol...
Sembrava spacciato, poi una bici elettri...
Apple Watch Series 1 diventa obsoleto: a...
ho. Mobile, upgrade a 250 GB senza sovra...
Reddit non avrà post a pagamento,...
Mercato auto in crisi in Italia: i priva...
Adesso puoi parlare con l'IA su WhatsApp...
AGCM bastona Shein: stangata da un milio...
Vendite di veicoli completamente elettri...
Tim Cook supera Steve Jobs: è il ...
Addio streaming illegale? Piracy Shield ...
Lunedì col botto: tablet e RTX 50...
Mastercard rompe il silenzio: nessun ruo...
Questo tablet oggi non si batte: 11"...
Alexa+ ti parla, ti consiglia e...potreb...
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: 12:49.


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