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
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 mov eax [ebp+8] mov ebx [ebp+12] pusha push eax push ebx call getAndSetIndiceASM pop eax pop ebx popa
voila, e(t ici, ily a une valeur de reour qiu se trouve dans eax que j'aimerais renvoyer au programme appellée
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
call getAndSetIndiceASM
la quesiton est , ou dois je mettre cette valeur car si je la met dans un registre, il sont effacer par
qui suit le call
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 pop eax pop ebx popa
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 mov esp, ebp pop ebp
meme quesiton quadn c'est une fonction c++ que j'appelle
et que la signature de la fonction est int fonction()
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 ex call fonction()
ou va la valeur de retour???
merci
a+++
[Balise [code] rajoutée par Smortex]
[Pensez-y vous-même à l'avenir. Merci.]
Partager