call다음 명령어는 어떻게된는거야? 그리고ret이 있어야 call다음 명령으로 점프하는거아니야?
call명령으로 함수호출한다음 그함수에 ret이없으면 스택에 저장된
익명(122.32)
2014-07-08 17:34
추천 0
댓글 4
다른 게시글
-
java [1]ㅇ(175.223) | 14.07.08추천 0
-
호스팅이전질문입니다.. 제 사이트를 만들어준 사람이ㅠㅠ [1]steve(115.23) | 14.07.08추천 0
-
안드로이드 원격제어 루팅 안하고는 안되지 않음??익명(223.33) | 14.07.08추천 0
-
어셈스택에서 enter 4,0ㅇㅇ1``(122.32) | 14.07.08추천 0
-
백왕보거라 [1]codesafe(whiteprince) | 14.07.08추천 0
-
어셈 스택 질문... [12]dd(122.32) | 14.07.08추천 0
-
가상현실게임이라는게 가능할꺼 같음? [1]waitFor(61.81) | 14.07.08추천 0
-
요시! 그란도시즌!!익명(221.152) | 14.07.08추천 0
-
디시 글 자동등록시키는 프로그램은 어디서 살 수 있나요? [6]익명(223.62) | 14.07.08추천 0
-
저기 웹에 능통하시분 도와주세요 ㅠㅠ [1]익명(27.126) | 14.07.08추천 0
요즘엔 없어도 컴파일러가 만들던데요
아 그런가요
call 하면 스택에 다음 명령 주소가 저장되고 ret하면 그 스택에 저장된곳으로 간다. 중간에 스택 주소 바뀌면 꼬임
A함수의 10 번째 라인에서 call B 를 한다고 치자. B로 이동함과 동시에 스택의 맨 위에 A함수의 11번째 라인의 주소가 들어간다. B에서 작업을 다 마치고 마지막에 RET 코드를 실행할때 스택의 맨 위에는 아까 저장했던 A함수의 11번째 라인으로 감. 위에 트로이가 말한거 길게 풀어쓴 거 뿐임