어셈블리어/Assembly_3_엔디언
3. 엔디언(Endianness)이란?
메모리와 같은 1차원 공간에 C언어에서 배열을 사용하듯 연속된 대상을 열거하는 방법이다.
이것은 빅 엔디언(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에서 사용하는 바이트 오더
'→ My Meta+IT > 리버싱' 카테고리의 다른 글
어셈블리어/Assembly_5_실습 (0) | 2022.01.14 |
---|---|
어셈블리어/Assembly_4_Break Point(브레이크 포인트) (0) | 2022.01.14 |
어셈블리어/Assembly_2 (0) | 2022.01.14 |
어셈블리어/Assembly_1 (0) | 2022.01.14 |
댓글