oui & non, généralement le compilo fait la chose suivante:
yopla:
push ebp
mov ebp,esp
.....
sub esp,8 ;// "allocation" de 2 long int
mov eax,[ebp+8] ;// premier param (skip sauvegarde ebp+val retour)
....
...
add esp,8
pop ebp
ret
ebp sert à accéder aux paramètres (en sauvegardant esp), comme ça le compilo peut "allouer" des variables sur la pile.
mais bon c'est -pas- nécessaire il faut juste que le compilo maintienne un offset aux paramètres passé dans la pile....
yopla:
sub esp,8 ;//(2 longs)
....
mov eax,[esp+4+8] ;// premier parmètre (skip 8 octets "alloués" + val retour)
....
add esp,8
ret
Message édité par bjone le 24-10-2002 à 12:36:59