[한양대 에리카 A+] 마이크로프로세서응용 memory.c
- 최초 등록일
- 2020.05.17
- 최종 저작일
- 2019.03
- 9페이지/
MS 워드
- 가격 1,500원
![할인쿠폰받기](/images/v4/document/ico_det_coupon.gif)
목차
1. 배경
2. 결과
3. 결론 및 Discussion
본문내용
Chapter 1. 배경
1. 메모리의 주소값의 표현
컴퓨터는 데이터를 구분하기 위해 메모리 주소를 사용한다. 이때 메모리 주소는 편리성과 효율성을 위해 16진법을 사용하여 표현한다.(0x000의 꼴)
2. ASCII TABLE
메모리의 번지수를 계산하기 위해서 ASCII TABLE을 이용하고자 한다.
이번 실습에서는 빨간색으로 박스표시해둔 부분의 값을 이용할 것이다.
3. 배열과 포인터
배열은 같은 자료형이 연속된 공간으로 나열되어 있는 것이다. 이와 같은 배열에 대해서 조금 더 쉽게 접근하기 위해서 인덱스(index)를 갖는데, 이 인덱스를 통해 빠르게 배열 원소에 접근하게 된다. 이 부분이 포인터와 유사한 역할을 수행한다.
예를 들어, int a[5]={5,3,1,2,4};와 같은 배열이 있다면 메모리의 구조는 아래 사진과 같이 구성될 것이다. 위의 경우엔 int가 4바이트를 차지하기 때문에 4바이트 씩 주소가 증가하고 있는 것을 확인해볼 수 있다. 이번 실습의 경우, 우리는 배열의 자료형을 unsigned char로 설정했기 때문에 1바이트 씩 주소가 증가할 것이다. 하지만 포인터의 경우에는 주소값을 직접 변경하는 것이 가능하지만, 배열은 그렇지 않다는 점이 서로 다르다.
4. 엔디안(Endian)
컴퓨터에서 엔디안이란 데이터가 있을 때 어떤 순서로 메모리 위치에 저장시킬지를 의미한다. 엔디안의 종류인 빅 엔디안과 리틀 엔디안은 순서는 서로 다르지만, 둘 다 데이터가 낮은 주소에서 높은 주소 순으로 저장이 된다는 점이 같다.
1) 빅 엔디안(Big Endian)
큰 단위부터 읽어서 메모리에 넣어주는 방식이다. 사람이 왼쪽에서부터 읽어나간다고 생각하면 된다.
0x123456이라는 데이터를 메모리에 저장한다고 가정하면 아래와 같이 저장된다.
2) 리틀 엔디안(Little Endian)
작은 단위부터 읽어서 메모리에 넣어주는 방식이다. 빅 엔디안 방식과는 반대로 오른쪽에서부터 읽어나간다고 생각하면 된다.
참고 자료
없음