리눅스

 3916, 1/196 회원가입  로그인  
   windowhan
   http://blog.naver.com/window__han
   esp값이 왜 증가할까?...

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=4157 [복사]


push %ebp
mov %esp,%ebp

함수 프롤로그 중,(참고로 AT&T 문법)

mov %esp,%ebp에 해당하는곳 질문합니다
4가 증가되어있는데요;
4가 왜 증가되는지 모르겠습니다.

새 스택프레임을 만드는데 왜 증가할까요??..

아 그리구 추가적으로 더 물어보고싶은게 있는데요...

왜 eip값은 가면갈수록 더해지는거에요?ㅠ

  Hit : 3187     Date : 2012/05/16 11:09



    
aalswn EIP 는 실행할 코드의 주소를 담고있는 레지스터에요 2012/05/16  
windowhan aalswn // 그런데 값자체를 보면 계속 증가하는걸요?.. 그 이유가 그것때문인건가요? 2012/05/16  
aalswn 네 EIP 는 코드의 주소를 가리키니 프로그램이 어디서 멈췄는지에 따라 값이 달라지겟져? 2012/05/16  
key 1) ebp를 스택에 push 하였기 때문에 스택은 높은주소->낮은주소니까 4만큼 주소값이 감소
2) eip는 순차적으로 실행되는 코드의 주소가 담기므로 명령어의 크기만큼 증가
2012/05/17  
cd80 브레이크포인트가 mov %esp, %ebp 에서 멈췄단것은 push %ebp까지 실행되고
mov %esp, %ebp를 아직 실행하기 전이란 뜻입니다
eip가 점점 늘어나는 이유는 CPU가 명령어를 하나하나 실행시킬때마다 eip를 증가시키고 다음 명령어를 가르켜 그 명령어를 실행하게 하기 때문이구요
2012/05/17