인프런 커뮤니티 질문&답변

정준혁님의 프로필 이미지
정준혁

작성한 질문수

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문

스택 프레임

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

작성

·

204

0

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

답변 1

0

Rookiss님의 프로필 이미지
Rookiss
지식공유자

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

Rookiss님의 프로필 이미지
Rookiss
지식공유자

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

정준혁님의 프로필 이미지
정준혁

작성한 질문수

질문하기