서강대학교 마이크로프로세서 3주차 실험
- 최초 등록일
- 2021.06.30
- 최종 저작일
- 2021.03
- 26페이지/ 한컴오피스
- 가격 3,000원
소개글
"서강대학교 마이크로프로세서 3주차 실험"에 대한 내용입니다.
목차
1. 실험 제목
2. 실험 목적
3. 실험 이론
4. 실험 결과 및 분석
5. 토의
6. 참고문헌
본문내용
1. 실험 제목
Data transfer instructions
2. 실험 목적
● 데이터 전달 명령어들의 종류와 동작에 대해 이해한다.
● Endian mode, addressing mode, bit-banding, pseudo-instruction에 대해 확인한다.
● 데이터의 유형 및 주소 해석에 대해 알아본다.
● 일부 directive의 역할을 확인한다.
3. 실험 이론
(1) 데이터 전달 명령어들의 종류 및 동작
명령어
동작
ADR
PC-relative address 생성, 데이터의 주소를 레지스터로 불러옴
CLREX
exclusive 제거
LDM
Multiple registers에 데이터를 불러온 후, 주소 증가
LDMDB,
LDMEA
Multiple registers에 데이터를 불러오기 전, 주소 감소
LDMFD,
LDMIA
Multiple registers에 데이터를 불러온 후, 주소 증가
LDR
word 단위로 데이터를 resister에 불러옴
< 중 략 >
5. 토의
1. 교재 그림 3.3의 Cortex-M3 memory map을 보면 Code 영역의 주소는 0x00000000부터 인 것을 알 수 있습니다. 그러나 disassemble window를 통해 Lab 3-1 코드가 시작하는 지점인 Line 5의 주소를 확인해보면 0x08000310부터 code가 저장되어 있는 것을 알 수 있는데, 그 이유를 분석해보세요.
disassemble window를 통해 Line 5의 시작주소가 0x08000310인 것을 알 수 있다. 그 이유를 파악하기 위해 disassemble window의 처음부터 분석해보았다.
초기에는 0x00000000부터 2씩 증가하며 DCW directive를 사용한 코드가 저장되어 있었다. 여기에는 stack pointer의 시작점과 vector table, 초기 PC값 등을 포함하고 있다. 이것이 시작부터 0x080000EA번지까지 저장되어 나타났다.
참고 자료
yiu, J. (2010). The definitive guide to the ARM Cortex-M3. Newnes
http://www.ktword.co.kr/test/view/view.php?nav=2&no=12&sh=ascii
- ASCII code
https://www.eventhelix.com/RealtimeMantra/FaultHandling/bus_cycles.htm
- 프로세서의 Bus Cycle
http://blog.naver.com/PostView.nhn?blogId=gauya&logNo=220974576065&parentCategoryNo=&categoryNo=62&viewDate=&isShowPopularPosts=true&from=search
- stm32 Memory map