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

-.-님의 프로필 이미지
-.-

작성한 질문수

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

스택 메모리

MAX 함수 구현 질문입니다

작성

·

234

1

안녕하세요 항상 유익한 강의 감사드립니다.

 

MAX:

   push rbp

   mov rbp, rsp

 

   mov rax, [rbp+16]

   mov rbx, [rbp+24]

   cmp rax, rbx

 

여기서 mov rbp, rsp 를 하지 않고 rsp를 기준으로 연산을 하는게 더 간단할 것 같은데 이렇게 구현하는이유가 함수안에서도 push를 할때가 있어서라고 생각하는데 맞는지 궁금합니다.

 

답변 1

1

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

잘 이해하셨습니다.
sp(stack pointer)는 push/pop을 할때마다 위치가 변하는 휘발적인 존재입니다.
따라서 bp(base pointer) 즉 기준이 되는 고정 위치를 정해두고,
bp를 기준으로 코드가 만들어지는 것입니다.
그러면 추후 sp가 변하더라도, 이미 위치를 고정시켜둔 bp는 영향받지 않겠죠.

-.-님의 프로필 이미지
-.-

작성한 질문수

질문하기