Bonjour,

Je suis nouveau, et je n'ai malheureusement jamais fait d'Assembleur.
Je dois regarder un programme de chargement de DLL dynamique, et je n'y comprends rien, normal.
J'appelle ce programme ensuite dans un programme C qui ne fonctionne pas. Je voulais donc vérifier cette partie.

Voilà le code, j'espère que vous pourrez me dire si ce code est correct :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
_AppelDLL: 
              push    ebp           ; passage par cdecl
                                mov    ebp, esp   ; donc sauvegarde de la pile
 
              mov    eax, [ebp+8]        ; 1er argument tabEntree type void ** 
              mov    ecx, [ebp+12]      ; 2eme argument nbparam
 
              dec ecx
              js appel
              boucle:
		mov  ebx, [ebp+24]	  ;nombre d'elts de type DOUBLE
		dec  ebx
		js finboucle2
		boucle2:
			mov  edx,[ebp+20] 	;tableau de position des DOUBLE
			cmp  ecx, [edx+ebx*4]
			jne  suite2
				mov  edx,[eax+ecx*4]
				push dword [edx+4]
				push dword [edx]  
				jmp fin
			suite2:
				dec ebx
				jns boucle2
		finboucle2:
			push dword [eax+ecx*4]
	       fin:
		     dec ecx
               	           jns boucle
 
	      appel:
		     mov  ebx, [ebp+16]	;adresse de la fonction
                            call ebx
 
              mov    esp,ebp
              pop     ebp            ; restauration de la pile
              ret                         ; retour
Pourriez-vous me décrire un peu le principe de ce programme.
Merci beaucoup en tout cas pour vos futures contributions.

A très bientôt,