ISA와 어셈블리
리틀 엔디안 RISC-V에서 0x12345678이 들어 있는 레지스터를 'sw'로 주소 0x100에 썼다. 그 후 'lbu'로 주소 0x101의 1바이트를 읽으면 값은 얼마인가?
- A0x34
- B0x56
- C0x78
정답과 해설 보기
정답: B. 0x56
리틀 엔디안에서는 값의 하위 바이트부터 순서대로 작은 주소에 둡니다. 0x12345678이라면 0x100에 0x78, 0x101에 0x56, 0x102에 0x34, 0x103에 0x12가 들어갑니다. 따라서 0x101의 1바이트는 0x56입니다. 빅 엔디안이라면 0x100부터 0x12, 0x34, … 순이 되어 0x101은 0x34입니다. 네트워크나 파일 형식을 다룰 때는 이 차이에 주의가 필요합니다.