[어셈블러] 어셈블러로 함수의 호출 원리를 알아보자!! 2탄
시작하기 전에... 사외교육을 갔다가 너무 내용이 좋아서 정리하면서 글을 올리게 되었다. 교육내용을 모두 올린건 은 아니고 일부분을 재구성해서 올렸다. 강석민 강사님께 감사 드립니다^^ cafe.naver.com/cppmaster 3. 교시 - 어셈으로 함수 호출과 스택프레임, calling convention 이번에는 어셈코드를 본격적으로 짜보면서 어셈으로 함수 호출방법에 대해 알아 보도록 하자. 2교시때와 마찬가지로 함수호출할 때 인자 전달 방법과 리턴방법에 대해 알아 볼 것이고, 함수가 호출될 때 스택의 관리에 대해 고민해 볼 것이다. 마직막으로 이를 토대로 calling convention에 대해 알아 보고, inline함수에 대해 간단히 알아 보도록 하자. 그전에!! 어셈을 컴파일 하고 obj파..
2008.08.30
[어셈블러] 어셈블러로 함수의 호출 원리를 알아보자!! 1탄
시작하기 전에... 사외교육을 갔다가 너무 내용이 좋아서 정리하면서 글을 올리게 되었다. 교육내용을 모두 올린건 은 아니고 일부분을 재구성해서 올렸다. 강석민 강사님께 감사 드립니다^^ cafe.naver.com/cppmaster C언어의 함수 호출 원리 함수를 호출할 때 인자값과 리턴값이 있기 마련이다. C언어에서는 어떤방법으로 인자값와 리턴값을 처리할까? 결론부터 말하면 인자값은 스택에 넣어서 함수로 가고, 리턴값은 eax레지스터에 넣어 돌려 보내준다. int add(int a, int b) { return 10; } void main() { add(1, 2); } add(1,2)의 함수를 호출 할 때 인자값은 스택에 넣는다고 했다. 스택이라는 자료구조의 특성상 인자값은 뒤에서부터 스택에 쌓이게 된다..
2008.08.30