2011-05-15 3 views
0

스택의 시작 주소 얻기 다음 pushl %의의 EBP 전에 ESP 인쇄 이유
executing assembly within a function in c++가능한 중복이

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

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

이 스택이 설정되기 전에를 (, movl % esp, % ebp) 미리 감사드립니다.

+0

'void main()'을 쓰지 말고 '** int main (int argc, char ** argv) **' –

답변

1

내 생각 엔 프레임이 필요 없으므로 아무 것도 없습니다. s는 getesp에 할당됩니다. 세부 사항은 사용중인 컴파일러 및 컴파일러 플래그에 따라 다릅니다.

관련 문제