• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    해결됨

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

23.06.30 21:41 작성 23.06.30 22:05 수정 조회수 277

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

잇택잇님의 프로필

잇택잇

질문자

2023.07.01

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

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

감사합니다!

채널톡 아이콘