executing assembly dentro de uma função em c ++

    
long getesp() {  
    __asm__("movl %esp,%eax");  
    }  

    void main() {  
    printf("%08X\n",getesp()+4);  
    }  

por que esp aponta valor antes da configuração do quadro de pilha e faz alguma diferença entre o código abaixo?

   
void main() {    
   __asm__("movl %esp,%eax");    
   } 

questionAnswers(1)

yourAnswerToTheQuestion