33Fermer35
GodzilLe 18/03/2005 à 14:54
Ethaniel
:
Quesoft a écrit :
Ethaniel :
En Asm, comme il n'y a pas de variables locales, on est oblige pour faire du recursif de passer par la pile et le pointeur (E)BP, mais la pile est d'une lenteur affligeante sick ...
Enfin du moins, ca c'est pour les programmes a flux direct (*.com) ; pour les autres (*.exe, ...), je n'en sais rien ...

@++
Et c'est pas la même pile qu'utilise le compilateur C lorsqu'il stack les appels de fonction ? Les variables locales sont allouées sur la pile également si je ne me trompe pas.
Il me semble que c'est bien le cas, mais je n'en connais pas assez sur l'assemblage d'un programme C pour l'affirmer ...
Cependant, la difference, c'est que l'utilisation des variables locales est hyper-simple en C, alors qu'en Asm, il faut bien connaitre le remplissage de la pile pour que (E)BP ne pointe pas a cote de ce que l'on voulait (savoir si c'est IP ou EIP qui est pushe, savoir si (E)CS l'est egalement, ...).
De plus, en C, le fait que la pile est utilisee pour les variables locales n'est pas grave, puisque ce n'est pas la vitesse que l'on cherche, alors qu'en Asm, on utilise la pile en extreme recours, lorsqu'il n'y a absolument aucun moyen de faire autrement (et il y a toujours moyen de faire autrement ...).

@++

et tout le monde ne fais pas de l'asm x86 (qui vaux rien du tout)