2014-09-29 2 views
-2

내가 디 컴파일 할 수있는 다음 코드를 :이해 디 컴파일 어셈블리 코드

movl $0x2feaf, -0x18(%ebp) 
mov 0x8(%ebp), %eax 
mov %eax, -0x14(%ebp) 

내 문제는 내가 맥락에서 무엇을 의미하는지 0x8이 (%의 EBP) 이해하지 못하는 것입니다. 0x8이 (%의 EBP) 무엇을 의미 하는가

int b = 196271; 
int a = b; 

그러나 그것은 나에게

movl $0x2feaf, -0x8(%ebp) 
mov -0x8(%ebp), $eax 
mov %eax, -0x4(%ebp) 

을 제공합니다 : 나는 다음과 같은 C 코드를 시도? 감사!

답변

3

[EBP + 8]에있는 모든 것을 EAX 레지스터로 옮기는 것을 의미합니다.

대부분의 컨텍스트에서 [EBP + 8]은 현재 함수의 매개 변수가됩니다.