inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

스택 메모리

스택 프레임

287

JjaengE

작성한 질문수 10

1

수업을 듣던 중 궁금해서 visual studio에서 함수를 만들고

디스어셈블리창을 열어서 확인해보는데 

main이나 제가 만든 여러 함수 같은 것들을 실행할때도 

꼭 esi와 edi를 push 하던데 어떤 용도인지 알 수 있을까요?

인터넷을 찾아보니까 데이터를 복사할 때 사용한다던데... 정확하게 이해가 가지 않아서 질문 올립니다.

C++

답변 2

2

Rookiss

함수 시작할 때 레지스터를 push하는 것은
단순히 레지스터 상태 보존을 위한 것이고
함수가 끝나면 pop을 해서 최초 상태를 복원을 시키게 됩니다.

esi edi는 eax ebx ecx등과 마찬가지로 범용적인 용도로도 사용이 가능하고,
일부 함수들 (문자열 복사 등)에서 간혹 예약되어 사용되기도 하지만
크게 중요한 부분은 아닙니다.

1

JjaengE

답변 감사합니다!!

visualstudio에서 파일분할관리실습시 설정 문의를 드립니다.

0

541

1

정렬함수 좀 더 확실하게 이해 할 방법이 있을까요?

0

442

1

strcpy() 구현 관련 질문

0

513

1

빌드(망치)를 누르니 이런 오류가 떴습니다. 어떻게 해야 하나요?

0

453

1

클래스 타입의 포인터 질문합니다

0

546

1

입력값을 enum 값에 넣어주는거 이제 막혔나요?

0

498

1

템플릿 특수화 관련 질문

0

385

1

포인터 관련 질문합니다!

0

265

1

Unable to start assembler. Check your settings.

0

831

2

cpu선택

0

539

1

포인터 질문이 있습니다

0

324

1

20:35 에서 구조체 크기에 대한 질문입니다!

0

585

1

iterator 삭제관련

0

406

1

함수 호출을 디스어셈블러로 분석하다가 궁금점이 생겼습니다!

0

310

1

15 분 45초 대 질문

0

309

0

스택 프레임 질문합니다!

2

306

1

오른값 참조 in 게임

0

384

0

동적할당 질문이 있습니다

0

450

1

안녕하세요 메모리에 대해 질문드립니다.

0

305

1

함수객체 의 매개변수

0

360

1

복사생성자

0

434

1

main이나 endl 부분이 주황색으로 표시된건 어떻게 하나요

0

421

1

포인터 실습 강의를 보고 궁금한게 있습니다.

0

355

1

스택 오버플로우

2

790

1