begin process at 2012 05 28 18:29:45
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Windows

 > 

Autre

 > 

DevCPP inline asm error


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

DevCPP inline asm error

samedi 16 août 2008 à 03:42:56 | DevCPP inline asm error

belette321

Bon, je suis en plein creation d'un petit dll qui utilise
le ASM inline, j'ai plusieur fonction qui on touts les meme
erreur. Cependant je ne trouve pas le moyen de corriger
tout sa. alor voilla tout ...

L'Erreure :
-----------------------------------------------------------
-----------------------------------------------------------
'pushad'
Too many memory references for 'mov'
Too many memory references for 'add'
'popad'
-----------------------------------------------------------
-----------------------------------------------------------



Code:
-----------------------------------------------------------
-----------------------------------------------------------
void ZPostShotMelee()
{
    float MyPos[3] = {0.000000};
    memcpy(MyPos,GetPosition((void*)MyZCharacter()),12);
    asm("pushad");
    asm("mov eax,ZPostShotMeleeAddress");
    asm("PUSH 7");
    asm("PUSH MyPos");
    asm("call eax");
    asm("add esp,8");
    asm("popad");
}
-----------------------------------------------------------
-----------------------------------------------------------



Screenshoot :





Merci pour votre futur aide
samedi 16 août 2008 à 04:06:53 | Re : DevCPP inline asm error

Neo_Fr

Membre Club
Par defaut gcc n'accepte que de l'asm AT&T tu peut neanmoins lui faire accepter de l'asm Intel en ajoutant ce code:
asm(".intel_syntax noprefix");

Neo_Fr
samedi 16 août 2008 à 04:36:34 | Re : DevCPP inline asm error

belette321

Voila la nouvelle erreur

Screenshoot :


Merci pour votre futur aide
samedi 16 août 2008 à 16:55:50 | Re : DevCPP inline asm error

Neo_Fr

Membre Club
Essaye de cette facon:
asm(".intel_syntax noprefix

Ton code en asm Intel ici..

\n");

Neo_Fr
dimanche 17 août 2008 à 18:31:35 | Re : DevCPP inline asm error

rt15

Membre Club Administrateur CodeS-SourceS

Salut,

Sauf erreur de ma part, l'assembleur que tu nous montre ici n'est pas du tout inévitable.

    asm("pushad");   // Sauvegarde du contexte. On s'en fou un peu
    asm("mov eax,ZPostShotMeleeAddress");    // On met une adresse dans eax
    asm("PUSH 7");   // On pousse 7
    asm("PUSH MyPos");  // On pousse l'adresse du tableau MyPos (On passe un paramètre)
    asm("call eax");             // On appel l'adresse précédement mise dans eax (On passe un autre paramètre)
    asm("add esp,8");        // On dépile les paramètres, typique d'un appel en cdecl
    asm("popad");        // On restaure le context

Cela ressemble beaucoup à un appel d'une fonction de convention cdecl, prenant deux paramètres, un pointeur sur un tableau de float et un entier, et ne renvoyant rien (Ou du moins on se fiche du résultat).

En cdecl, les paramètres sont poussés de droite à gauche. Donc je dirais que la fonction appelée à le prototype suivant  :
void __cdelc ZPostShotMeleeAddress(float* lpPos, int val)
On ne peut pas deviner le type de retour, mais ça n'a pas d'importance.

Le code ci-dessus revient à l'appeler en lui passant (MyPos, 7).

Par contre, tu travailles avec une adresse (ZPostShotMeleeAddress) que je ne sais pas comment tu la récupères...

Il faudra donc peut être que tu déclare un pointeur sur fonction et que tu récupère l'adresse de ta fonction dans ce pointeur.

Mais bon, peut être que tu as pas mal d'asm à traduire...

Si la méthode de Neo_Fr ne fonctionne pas, tu peux essayer de traduire en AT&T. Pour traduire, tu peux commencer par regarder ce source par exemple.



Cette discussion est classée dans : error, devcpp, asm, inline, mypos


Répondre à ce message

Sujets en rapport avec ce message

asm inline [ par tintin72 ] Bonjour,Je programme un petit jeu en OpenGL et j'aimerai savoir comment faire pour que les commandes clavier soit fluides et pas saccadées comme c'est inclusion de code asm sous devcpp [ par obasileus ] est ce ke kkun connait la typographie ki permet d'inclure du code assembleur sous le compilateur dev c++ ? Inline asm + classe = erreur! [ par Darkneon ] Salut a tous.Lorsque je mets du codes assembleur dans ma classe le compilateur me renvoit l'erreur suivante."Inline assembly not allowed in inline and Naked function, asm inline, et chaînes de caractères [ par stagiairecpp ] Bonjour, Voilà je rencontre un soucis très particulier sous VS pour une situation très particulière. J'en appelle donc directement aux pro-codeurs ad Visual Studio 2008 x64 et procedure __asm [ par ld121962 ] Bonjour, Je voudrais passer un code de win32 en x64. A la compilation j'ai un message me disant que le mot clef "__asm, mov, etc.." sont inconnus. Q Configuration DevCpp sous windows et SFML [ par tiouil ] Bonjour, suite à un gros plantage de windows, j'ai du tout réinstaller y compris DevCpp. Le problème est que j'ai un projet C++/SFML que je doit rendr Error E2288 [ par vergil3a ] Bonjour a tout je veus lire le nom dun field dans une Edit control alors j' utilise C++ builder ver 5 et la ligne de code suivant [color RegSetValue [ par deck_bsd ] Yop à tous, J'ai un problème bizzare . J'ai cette méthode : [code=cpp] BOOL __stdcall SetInRun(char * szPath){ HKEY hkKey; long iError; if #include [ par hm1964 ] Je m'arrache les cheveux qui me restent avec le problème suivant :J'ai fait un programme simple avec VC++6.0 une fenêtre, un menu et un peu de texte d error LNK2005 que faire ? vite je v me pendre !!!! [ par Milhouse57 ] Voila alors je debute en C++, et je dois faire un projet avec un arbre binaire !! (visual C++ 6.0)Le probleme c que lorsque je build, j'ai toutes les


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

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 : 2,465 sec (3)

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