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

잇택잇님의 프로필 이미지
잇택잇

작성한 질문수

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

변수와 레지스터

변수와 레지스터 강의 17:15 질문

해결된 질문

작성

·

335

·

수정됨

0

Q1.

mov rax, [a]를 통해 변수 a의 값을 rax에 할당하였습니다.

디버깅 모드-레지스터창에서는 rax의 값이 0x443333...으로 나와습니다.

 

메모리창의 a의 값은 0x11, 0x22, ... 의 순서인데 왜 뒤집어진건지 궁금합니다!

 

Q2.

Q1과 이어집니다만,

a. 16진수 상수를 레지스터에 할당하고 레지스터창을 보면 입력한 값 그대로 들어가 있는 것을 확인하였습니다.

b. 16진수 상수를 변수에 넣은 경우 메모리창을 보면 입력한 값의 순서가 뒤집어져있는 것 같습니다.

어떤 원리가 있는건지 궁금합니다.

ex)

    mov [a], byte 0xef
    mov [a], word 0xabcd

예상 >> ab, cd, 22, 33, ...

실제 >> cd, ab, 22, 33, ...

이 저장 방식이 이해가 되지 않습니다...!

 

감사합니다.

답변 1

1

잇택잇님의 프로필 이미지
잇택잇
질문자

바로 다음 강의에서 다뤄주셨습니다!

Byte order 중 Little-endian에 의한 방식으로 낮은 주소 부터 낮은 바이트를 할당하게 되어 순서가 거꾸로 된 것 처럼 보였습니다.

감사합니다!

잇택잇님의 프로필 이미지
잇택잇

작성한 질문수

질문하기