강의

멘토링

커뮤니티

Inflearn Community Q&A

jjmjjj031605's profile image
jjmjjj031605

asked

[MMORPG Game Development with C++ and Unreal Series] Part 1: Introduction to C++ Programming

stack frame

잉 [충고]편, 강의와 다름

Written on

·

278

0

  • - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
  • 강의에서는     int result = MultiplyBy(b, a); 부분을 어셈블리로 조사를 한다면, push부분이 나와야 하지만 나타나지 않고 대부분 어셈블리적힌 부분이 다른 거 같은데 왜 다른지 모르겠습니다.
강의다름C++스택

Answer 1

0

Rookiss님의 프로필 이미지
Rookiss
Instructor

어셈블리 언어 결과물은 컴파일러가 번역한 결과이고
어떤 식으로 번역할지는 컴파일러 마음입니다. (즉 VS 버전에 따라 상이함)
스택에 넣는게 '정석'적인 방법이지만,
함수 인자가 몇 안 된다면 저렇게 레지스터에 넣어서 전달하는 것도 방법입니다.
그러나 인자가 많아지면, 레지스터 개수의 한계로 인해
어차피 스택을 이용할 수 밖엔 없습니다.

Rookiss님의 프로필 이미지
Rookiss
Instructor

추가로 강의는 32비트 프로그램으로 진행하기 때문에 차이가 납니다.
64비트 프로그램에서는 레지스터를 최대한 활용하도록 되어 있습니다.

jjmjjj031605's profile image
jjmjjj031605

asked

Ask a question