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

starkshn님의 프로필 이미지
starkshn

작성한 질문수

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

레지스터 기초

12분 질문

작성

·

333

0

레지스터의 크기에 따라서 예약된 이름이 다르다고 하셨는데

이상태의 경우인데 

 

강의에서는

 

mov eax, 0x1234

mov rbx, 0x1234567

 

mov cl, 0xff

 

이렇게 해주셨는데 그러면  eax라는 이름에 0x1234가 왜 안들어가고 rax에 값이 들어가나요?

 

rax는 64비트이고 eax는 32비트의 이름을 가진 레지스터인데.. 이해가 잘 가지 않습니다.

답변 2

1

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

eax, rax가 별개로 있다는 의미가 아니라
rax의 '하위 절반'이 eax이고
eax의 '하위 절반'이 ax인 것입니다.

starkshn님의 프로필 이미지
starkshn
질문자

eax가 32비트라 32비트에 값을 할당하고 싶은데, 컴퓨터가 알아서  rax에 16진수 값을 넣은것인가요?

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

동일한 레지스터입니다.
쉽게 말해 A라는 레지스터가 있는데
그 전체를 사용할지 (RAX), 하위 절바반 사용할지(EAX)
이렇게 지정한다는거죠.

starkshn님의 프로필 이미지
starkshn
질문자

하루 지나고 다시 댓글 읽으니까 이해가 되었습니다. 감사합니다.

0

와 제가 궁금하던걸 이미 질문하셨군요! 감사함다

starkshn님의 프로필 이미지
starkshn

작성한 질문수

질문하기