bonjour, je suis noob en assembleur, et je suis tomber sur le prob suivant???

voila, j'aimerais savoir ou vont les valeur de retour lorsque qu'on appelle une fonction??? exemple. le petit code suivant
j'appelle getandsetindice
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
 
    mov eax [ebp+8]
    mov ebx [ebp+12]
 
    pusha
    push eax
    push ebx
    call getAndSetIndiceASM
    pop eax
    pop ebx
    popa
qui se trouve dans un autre fichier.asm

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
 
 
 
CPU 386
 
global getAndSetIndiceASM
 
getAndSetIndiceASM
        push ebp
        mov ebp, esp
 
        mov eax [ebp+8]
            mul dword  [ebp+12]
 
        mov esp, ebp
        pop ebp
        ret
voila, e(t ici, ily a une valeur de reour qiu se trouve dans eax que j'aimerais renvoyer au programme appellée
call getAndSetIndiceASM

la quesiton est , ou dois je mettre cette valeur car si je la met dans un registre, il sont effacer par
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 pop eax
    pop ebx
    popa
qui suit le call

si je met sur la pile , il ne le verra meme pas du au fait que
qui se trouve avant le ret. donc ou dois je le mettre.


meme quesiton quadn c'est une fonction c++ que j'appelle
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
ex 
call fonction()
et que la signature de la fonction est int fonction()
ou va la valeur de retour???

merci

a+++


[Balise [code] rajoutée par Smortex]
[Pensez-y vous-même à l'avenir. Merci.]