8051/PIC > 휴게소 - big-endian & little-endian

TODAY876 TOTAL645,547
사이트 이용안내
Login▼/회원가입
최신글보기 질문게시판 기술자료 동영상강좌

아두이노 센서 ATMEGA128 PWM LED 초음파 AVR 블루투스 LCD UART 모터 적외선


BASIC4MCU | 8051/PIC | DT-516 강좌 | 휴게소 - big-endian & little-endian

페이지 정보

작성자 키트 작성일2017-08-22 14:39 조회343회 댓글0건

본문

big-endian and little-endian

빅 엔디안과 리틀 엔디안은 컴퓨터 메모리에 저장된 바이트들의 순서를 설명하는 용어이다.

 

빅 엔디안은 큰 쪽 (바이트 열에서 가장 큰 값)이 먼저 저장되는 순서이며,

리틀 엔디안은 작은 쪽 (바이트 열에서 가장 작은 값)이 먼저 저장되는 순서이다.

 

예를 들면, 빅 엔디안 컴퓨터에서는 16진수 "4F52"를 저장공간에 "4F52"라고 저장할 것이다

(만약 4F가 1000번지에 저장되었다면, 52는 1001번지에 저장될 것이다).

반면에, 리틀 엔디안 시스템에서 이것은 "524F"와 같이 저장될 것이다.

 

IBM 370 컴퓨터와 대부분의 RISC 기반의 컴퓨터들, 그리고 모토로라 마이크로프로세서는 빅 엔디안 방식을 사용한다.

왼쪽에서 오른쪽으로 읽는 언어를 사용하는 사람들에게, 이것은 일련의 문자나 숫자를 저장하는 데 있어 자연스러운 방식이다.

 

한편, 인텔 프로세서나 DEC의 알파 프로세서, 그리고 적어도 그것들 상에서 운영되는 일부 프로그램들은 리틀 엔디안을 사용한다.

리틀 엔디안 순서에 대한 논리는, 수의 값을 증가시킬 때 수의 왼편에 자릿수를 추가해야할 필요가 있을지 모른다는 것이다 (지수가 아닌 경우에, 더 큰 숫자는 더 많은 자릿수를 갖는다).

 

빅 엔디안으로 정렬되어 저장되어 있는 숫자는 두 숫자를 더한 결과를 저장하기 위해 모든 자릿수를 오른쪽으로 옮겨야하는 일이 종종 발생한다.

그러나 리틀 엔디안 방식으로 저장된 숫자에서는, 최소 바이트가 원래 있던 자리에 그대로 머물 수 있으며, 새로운 자리 수는 최대 수가 있는 주소의 오른쪽에 추가될 수 있다.

이것은 일부 컴퓨터 연산들이 매우 단순해지고 빠르게 수행될 수 있다는 것을 의미한다.

 

자바나 FORTRAN과 같은 컴파일러들은 그들이 개발하는 목적 코드가 어떤 방식으로 저장될 것인지를 알아야만 한다. 필요한 경우, 한 방식에서 다른 방식으로 변경하는데 변환기가 사용될 수도 있다.

바이트 순서가 빅 엔디안이든 리틀 엔디안 이든, 각 바이트 내에 들어있는 비트들은 둘 모두 빅 엔디안으로 정렬되어 있다는 데에 유의하라. 즉, 저장된 바이트의 주어진 숫자에 의해 표현되는 전체적인 비트 스트림에 관해서는 빅이나 리틀 엔디안으로 하려는 시도가 없다는 것이다. 예를 들어 16진수 4F가 저장공간 내에 주어진 저장 주소범위 내에 있는 다른 바이트들과 함께 처음에 저장되든 또는 나중에 저장되든 간에, 그 바이트 내의 비트 순서는 다음과 같을 것이다.

01001111

비트 순서에 대해서도 빅 엔디안이나 리틀 엔디안으로 구현하는 것이 가능하긴 하지만,

거의 모든 CPU나 프로그램들은 빅 엔디안 비트 순서로 설계된다.

그러나 데이터 통신에서는, 비트 순서를 둘 중 어느 한쪽으로 하는 것이 가능하다.

 

에릭 레이몬드는 인터넷 도메인 이름과 전자우편 주소들이 리틀 엔디안 방식으로 표현된 것이라고 말한다.

예를 들어 만약, 텀즈 사이트의 주소를 빅 엔디안 방식으로 쓴다면 다음과 같은 형식을 가질 것이다.

kr.co.terms.www

빅 엔디안과 리틀 엔디안이라는 용어는 조나단 스위프트의 걸리버 여행기로부터 파생되었다.

http://www.terms.co.kr/big-endian.htm

 

Cx51 User's Guide

 

little endian

low-order byte is stored first

 

For example, a 16-bit integer value of 0x1234:

 

Address    +0    +1
Contents     0x34      0x12

 

 

A 32-bit integer value of 0x57415244:

 

Address    +0    +1    +2    +3
Contents     0x44      0x52     0x41     0x57

 

 

 

big endian

high-order byte is stored first

 

For example, a 16-bit integer value of 0x1234:

 

Address    +0    +1
Contents     0x12     0x34

 

 

A 32-bit integer value of 0x004A4F4E:

 

Address    +0    +1    +2    +3
Contents     0x00     0x4A     0x4F     0x4E

 

 

  • The 8051 LCALL instruction stores the address of the next instruction on the stack. The address is pushed onto the stack low-order byte first. The address is, therefore, stored in memory in little endian format.

http://www.keil.com/support/man/docs/c51/c51_xe.htm

 

 

8051(C51)과 AVR(코드비젼)은 반대입니다.

댓글 0

조회수 343

등록된 댓글이 없습니다.

8051/PICHOME > 8051/PIC > 전체 목록

게시물 검색

2019년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2018년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
Privacy Policy
MCU BASIC ⓒ 2017
모바일버전으로보기