Valeu fernando. entendi oq vc falou da minha confusão.
On Dec 15, 2:16 pm, Fernando Silva <
fms2...@gmail.com> wrote:
> Guilherme,
>
> Acho que você está fazendo confusão, não é uma prática muito comum se
> retornar valores de função através da pilha, é possível de fazer, mas não é
> o mais usual, uma vez que se pode usar o registrador %EAX para isso, por
> exemplo, que é uma solução mais simples, inclusive é o caso do código do
> slide 4 da aula 13.
>
> Tendo dito isso, vou comentar sobre suas dúvidas 1 de cada vez:
>
> 1) Normalmente o espaço que se aloca na pilha, durante uma função recursiva
> é feito para se ter uma área de memória livre, caso você precise usar, e não
> para alocar os parametros na hora da recursão, até porque não tem como se
> garantir a quantidade de vezes que a função vai realizar a recursão.
>
> 2) No caso, aloca-se para (%ESP), pois o valor de EAX vai passar a ocupar as
> posições de memórias referentes a:
> ESP / ESP+1 / ESP + 2 / ESP +3
> Se você fizesse, 4(%ESP), ele ocuparia:
> ESP+4 / ESP+5 / ESP+6 / ESP+7
>
> 3) No caso, sim, são incluidos 7 bytes no alocamento do f para manter o
> alinhamento com o g.
>
> Em 15 de dezembro de 2010 14:00, Guilherme Bomfim