Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora
Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora
WF-1000X M6 è la sesta generazione di auricolare in-ear sviluppata da Sony, un prodotto che punta a coniugare facilità di utilizzo con una elevata qualità di riproduzione dei contenuti audio e una cura nella riduzione del rumore ambientale che sia da riferimento
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI
Snowflake ha presentato diverse novità per la sua piattaforma legate all'intelligenza artificiale. Quella forse più eclatante è una collaborazione con OpenAI, ma non mancano diverse nuove funzionalità che rendono la piattaforma più flessibile e in grado di rispondere meglio alle esigenze in continuo cambiamento delle aziende
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Con velocità teoriche fino a 11 Gbps, gestione tramite app intelligente e protezione avanzata dei dispositivi, Roamii BE Pro porta il Wi‑Fi 7 tri‑band nelle abitazioni più esigenti. Un sistema Wi-Fi Mesh proposto da MSI allo scopo di garantire agli utenti una rete fluida e continua capace di sostenere streaming 8K, gaming competitivo e le applicazioni moderne più esigenti in termini di banda
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 23-10-2005, 14:42   #1
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
codice di prologo ed epilogo

salve a tutti, vi presento il mio problema: in VC6 implementando una funzione con __declspec(naked) non viene generato il codice di prologo ed epilogo nelle funzioni, quindi non viene creato lo stack frame; il problema è che il compilatore quando deve accedere alle variabili locali e ai parametri usa sempre EBP, di conseguenza non mi permette di usare variabili locali nelle funzioni naked (ai parametri però ci accede lo stesso usando ESP ).
esiste modo di far capire al compilatore che deve usare le variabili locali tramite ESP nelle funzioni naked?
il problema si può risolvere per vie manuali, ma per comodità preferirei poter usare le variabili locali nelle funzioni naked. thx
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 24-10-2005, 00:17   #2
The3DProgrammer
Senior Member
 
Iscritto dal: May 2000
Messaggi: 1459
vediamo se ho capito..

Codice:
__declspec ( naked ) main()
{
   int i;
   int j;

   __asm      /* prolog */
      {
      push   ebp
      mov      ebp, esp
      sub      esp, __LOCAL_SIZE
      }
      
   /* Function body */
   __asm      /* epilog */
      {
      mov      esp, ebp
      pop      ebp
      ret
      }
}
cioè tu vorresti evitare di scrivere ogni volta manualmente prologo ed epilogo?

ps stai a fa un VxD?

ciauz
The3DProgrammer è offline   Rispondi citando il messaggio o parte di esso
Old 24-10-2005, 00:44   #3
The3DProgrammer
Senior Member
 
Iscritto dal: May 2000
Messaggi: 1459
cmq se ho capito bene secondo me nn puoi, in quanto nel prologo devi allocare anche lo spazio per le variabili locali (tramite _LOCAL_SIZE)
The3DProgrammer è offline   Rispondi citando il messaggio o parte di esso
Old 24-10-2005, 10:54   #4
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da The3DProgrammer
vediamo se ho capito..

Codice:
__declspec ( naked ) main()
{
   int i;
   int j;

   __asm      /* prolog */
      {
      push   ebp
      mov      ebp, esp
      sub      esp, __LOCAL_SIZE
      }
      
   /* Function body */
   __asm      /* epilog */
      {
      mov      esp, ebp
      pop      ebp
      ret
      }
}
cioè tu vorresti evitare di scrivere ogni volta manualmente prologo ed epilogo?

ps stai a fa un VxD?
veramente no, il codice di prologo ed epilogo non è che lo devo scrivere manualmente, lo devo proprio togliere! però in effetti ora che mi ci fai pensare le variabili locali non sempre vengono allocate con un push sul momento, molte vengono allorate col sub all'inizio...
il problema è il seguente: cerco semplicemente di far scomparire le mie funzioni dal call stack, e per farlo devo semplicemente evitare di usare ebp per creare e distruggere gli stack frames; quello che vorrei è che il compilatore usasse esp anziché ebp per accedere alle variabili locali e ai parametri, però ovviamente non lo fa! inoltre cè anche il problema del sub iniziale, che dovrei fare manualmente, ma così il compilatore non può allocare variabili locali perché non può sapere se io ho fatto il sub oppure no, e se l'ho fatto per le variabili locali anziché per qualcos'altro.
la soluzione manuale sarebbe di non usare variabili locali, ma solo globali, e di usare funzioni naked... come soluzione non mi piace per niente...

ps: no, non è un vxd quello che sto facendo: è il mio solito virus vado a perfezionamenti: ogni volta lo miglioro aggiungendoci qualche caratteristica
71104 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora Sony WF-1000X M6: le cuffie in-ear di riferiment...
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI Snowflake porta l'IA dove sono i dati, anche gra...
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo M...
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi Recensione HUAWEI Mate X7: un foldable ottimo, m...
Nioh 3: souls-like punitivo e Action RPG Nioh 3: souls-like punitivo e Action RPG
Le tute spaziali AxEMU di Axiom Space pe...
Dongfeng sfida la NATO: navi dalla Cina ...
5G Standalone per il mondo marittimo: Er...
Nova Lake-S: configurazioni fino a 52 co...
Baxi presenta la pompa di calore Alya E ...
PC ASUS e Acer vietati in Germania: il t...
Stellantis rilancia il diesel in Europa:...
Truffa per utenti Trezor e Ledger: lette...
Wi-Fi 7 conveniente: FRITZ! lancia 4630,...
La Formula 1 dei robot tagliaerba miglio...
Il nuovo gioco del creatore di God of Wa...
Grok arriva sulle Tesla in Europa: l'int...
Assassin's Creed IV: Black Flag Remake p...
Il padre di God of War attacca Sons...
È operativo il primo computer qua...
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: 00:44.


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