본문 바로가기
→ My Meta+IT/리버싱

어셈블리어/Assembly_3_엔디언

by DigitalJobs 2022. 1. 14.

어셈블리어/Assembly_3_엔디언

3. 엔디언(Endianness)이란?

메모리와 같은 1차원 공간에 C언어에서 배열을 사용하듯 연속된 대상을 열거하는 방법이다.

이것은 빅 엔디언(Big-endian)리틀 엔디언(Little-endian)으로 나누어질 수 있다.

Big-Endian, Little-Endian 메모리 구조

빅 엔디언(Big-endian)

아래의 그림에서 볼 수 있듯이 Register에 저장된 값 0A 0B0C0D값을 메모리에 차례대로 최상위 바이트(MSB)부터 차례대로 저장하는 방식이다.

■ 장점
1. 디버그를 편하게 해주는 경향이 있다. (사람이 숫자를 읽고 쓰는 방법과 같기 때문)
2. TCP/IP는 16비트와 32비트 정수에서 빅 엔디안 방식을 사용한다.
3. 숫자 비교 시, 유리
4. UNIX에서 사용하는 바이트 오더

 

리틀 엔디언(Little-endian)

Big-Endian과 반대로 최 하위 바이트(LSB)부터 차례대로 메모리에 저장하는 방식이다.

■ 장점
1. 메모리에 저장된 값의 하위 바이트들만 사용할 때 별도의 계산이 필요 없다.
2. 수치 계산 시, 유리
3. Intel에서 사용하는 바이트 오더

 

 

댓글