Asm dans WinMain :)

cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 - 4 janv. 2006 à 13:20
cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 - 6 janv. 2006 à 10:04
Salut les gens ;)

Donc voilà je comprend à moitié ce code



__asm{

push 0

call dword ptr GetModuleHandle

push eax

push offset AppDlgProc

push 0

push IDD_APP

push eax

call dword ptr DialogBoxParam

push eax

call dword ptr ExitProcess

}



Donc push c'est pour mettre sur la pile, call c'est pour appeler la méthode ( Je ne comprend pas pourquoi on met dword et ptr :(

après pourquoi le push eax est nécessaire ?

Le offset il sert à quoi lol

IDD_APP c'est bon lol :)

et le reste c'est bon :D



Donc Brunews :) si tu passes par là, ou n'importe qui d'autre...
Pourriez avoir la générosité de m'expliquer ces ptits trucs pourtant
fort jolies !
if(!Meilleur("Joky")) return ERREUR;<

7 réponses

nightlord666 Messages postés 746 Date d'inscription vendredi 17 juin 2005 Statut Membre Dernière intervention 23 mai 2007 10
4 janv. 2006 à 13:25
Tu dois mettre les params dans la pile car c'est comme ça qu'on passe les paramètres à une fonction je pense...

Le offset j'en sais rien

Le IDD_APP non plus :)
0
cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
4 janv. 2006 à 13:30
bé oui ça j'avais compris lol :D

C'est marqué en plus rooooo la la :p

Faut lire hein :D

if(!Meilleur("Joky")) return ERREUR;<
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
4 janv. 2006 à 13:34
offset donne l'adresse.

dword ptr DialogBoxParam
'dword ptr' est spécifique pour compilo C de VS (les autres aucune idée). Il importe __imp___xxx comme adresse de fonction externe avec la syntaxe C habituelle, le 'dword ptr + nomFonction' en bloc asm lui fait reproduire ce schéma.

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
0
cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
4 janv. 2006 à 13:37
ok ok pour l'offset :)

Mais pourquoi on met eax sur la pile ?

C'est ptete parce que le résultat de GetModuleHandle est stocké dans eax non ?
if(!Meilleur("Joky")) return ERREUR;<
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
4 janv. 2006 à 13:49
Le retour est toujours dans EAX, en partie pour cela qu'il se nomme l'accumulateur.

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
0
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
4 janv. 2006 à 14:24
Il y a un cours fait pas des Universitaires sur l'ASM Intel, tu le trouveras sur google.
Il est plutot bien fait et avec plein d'exemples.
Shell
0
cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
6 janv. 2006 à 10:04
J'ai oublié de vous remercier :)

Donc merci ;)
if(!Meilleur("Joky")) return ERREUR;<
0
Rejoignez-nous