2012-07-12 2 views
0

다음 질문을해야합니다.이 함수의 스택은 어떻게 생겼습니까?

show(int a, int b) 
{ 
    int v1; 
    int v2; 
} 

A 및 B는 파라미터이고 : 주어

함수이다. v1 en v2는 지역 변수입니다. a, b, v1, v2, 반환 프레임의 이전 프레임 포인터가 어디에 있는지 명확한 스택을 그립니다. 또한 높은 스택 주소와 낮은 스택 주소를 보여줍니다.

나는 충분히 깨끗해 졌으면 좋겠다.

편집 : 그것은 JVM의 구현에 따라 달라집니다로 최종 그림을 그리기

v2  <-- SP 
v1 
prevLV <-- LV 
Ra 
a 
b 
+0

나는 아래에서 위로 무엇을 가지고 있습니다. b - a - rA - prevLV - v1 - v2. LV -> prevLV 및 SP -> v2 –

+0

어떤 아키텍처입니까? x86? MIPS? 스팍? – templatetypedef

답변

0

는 어렵지만, 당신이 지금 가지고있는 것은 올바른 될 가능성은 매우 낮 :

무엇 내가 지금 가지고있는 것은 .

Java는 args와 temps를 구분하지 않으므로 (iload 등을 참조하십시오.) 바이트 코드는 메모리에 나란히 나타나야하거나 누군가 호출자 보류 중으로 복사해야합니다 (비싼 경향이있는) 프레임 구축 시간에 피 호출자에게 스택.

관련 문제