해결된 질문
작성
·
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에 의한 방식으로 낮은 주소 부터 낮은 바이트를 할당하게 되어 순서가 거꾸로 된 것 처럼 보였습니다.
감사합니다!