begin process at 2012 05 30 10:51:30
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Divers

 > 

Général

 > 

Prologue stdcall


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Prologue stdcall

dimanche 1 octobre 2006 à 19:34:43 | Prologue stdcall

juju12

Bonsoir;
Dans le but d'optimiser la rapidité d'appel de fonction dnas un prog, je veux écrire mes propres prologue-épilogue (__declspec(naked)) tout en respectant la convention stdcall.
J'ai donc visionné le code assembleur généré par le compilateur pour une quelconque fonction et je bute sur ce passage :

mov ecx,30h;
mov eax,0CCCCCCCCh;
rep stos dword ptr es:[edi];


J'ai bien compris que ce code copie 48 fois 0xCCCCCCCC dans le Data Segment ES mais à quoi correspond ce dernier (qu'y-a-t'il dedans) ? Et est-il nécessaire de l'initialiser à chaque appel de fonction (ça fait quand même pas mal de cycles au bout du compte).

Je remercie tous ceux qui prendront la peine de répondre.

dimanche 1 octobre 2006 à 20:05:52 | Re : Prologue stdcall

BruNews

Administrateur CodeS-SourceS
Réponse acceptée !
Tu n'as aucun prolgue à mettre si tu écris ta fonction en ASM, que soit stdcall, fastcall ou cdecl.
La différence sera dans le mode de récup des params.

ciao...
BruNews, MVP VC++
dimanche 1 octobre 2006 à 20:25:21 | Re : Prologue stdcall

yann_lo_san

Si tu restes en stdcall, le prologue sert juste à sauver EBP, pointer EBP sur ESP et récupérer les param de pile.
MSDN :
Les arguments d'une fonction __stdcall font l'objet d'un push sur la pile de droite à gauche, et la routine appelée exécute un pop sur ces arguments à partir du dessus de la pile avant de retourner.

dimanche 1 octobre 2006 à 20:34:43 | Re : Prologue stdcall

BruNews

Administrateur CodeS-SourceS
Prologue stackframe n'est d'aucune utilité, ne fait que perdre des cycles.

ciao...
BruNews, MVP VC++
dimanche 1 octobre 2006 à 21:33:04 | Re : Prologue stdcall

juju12

Bon en gros je peux négliger ce rep stos...
J'aurais quand même aimé savoir à quoi il sert mais bon...c'est pas important finalement.
Merci;
dimanche 1 octobre 2006 à 21:49:52 | Re : Prologue stdcall

BruNews

Administrateur CodeS-SourceS
Faudrait déjà savoir si tu es bien sur l'entrée de ta fonction.
Dans tous les cas, ça n'a aucun rapport avec qlq prologue que ce soit.

Evite de prendre exemple sur le listing de ton compilo, il emploie des instructions vraiment obsolètes (stos et autres vieilleries de ce genre).

ciao...
BruNews, MVP VC++


Cette discussion est classée dans : fonction, code, appel, prologue, stdcall


Répondre à ce message

Sujets en rapport avec ce message

getch() sous Linux [ par yapud ] Bonjour,J'ai un probleme avec la fonction gecth() se trouvant danc la librairie CURSES.H sous LINUX !J'utilise cette meme fonction sous WINDOWS qui ma Fonction return dans une console windows [ par Jolfulorc ] Bonjour,Lorsque j'affiche un texte dans une console windows (code du genre : coutla façon que j'ai trouvé pour contourner cet inconvénient Timers haute précision [ par SMarmotte ] Bonjour à tousJe cherche à attendre EXACTEMENT 60 micro secondes.J'ai fait cette routine mais elle me bouffe 50% du temps CPU du fait que je dois l'ap Problème de code en c++ (fonction itoa) [ par mimyne ] voila g le code suivant:void Resultat_Clicked(Object* pSender, EventArgs* pArgs){ int operation = 5; char* chaine[2]; if (pSender == Btnres) { { ito Nombre aléatoire en C [ par FoLKeN91 ] Bonjour tout le monde.Alors voici mon probleme, j'ai beau cherché je n'arrive pas à le résoudre. Je désire faire une fonction qui renvoie un nombre al la fonction "afficher le source" de internet explorer [ par zip8000 ] Bonjour,je cherche a reproduire le resultat de la fonction "afficher la source" qui ouvre le code html d'une page internet. Mon but est de recuperer c probleme avec la fonction pow() [ par jeani763 ] j'ai un probleme avec la fonction powvoila mon code long int lettre1=pow(110,5);vous puriez me dire ce qui ne va pas pleas à propos des threads [ par GUERRIER_ABSOLU ] Salut, je voudrais savoir s'i quelqu'un a déjà essayé d'appeler une fonction dans un thread et a remarqué quelque chose d'innatendu. En fait quand j'a Appel d'une fonction à la compilation (c++) [ par Macvel ] Bonjour,je voudrais savoir s'il est possible de faire en sorte qu'une fonction soit exécutée à la compilation par l'intermédiaire des directives de co Appel de fonction [ par amauro ] Bonjour à tous!Bonjour à tous!J'aimerais appeller une fonction que j'ai crée moi-même dans la classe View.cpp de mon application MDI depuis la classe


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,390 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales