ARM Development Suite v1.2

Slides:



Advertisements
Similar presentations
내 마음의 버 스 이천신하교회 청년부. 이름 : 한상훈 나이 : 30 살 종교 : 기독교 ( 모태신앙 ) 생활신조 : 인생은 한방 ! 로또나 사자 이상형 : 청순 가련한 모태미녀 특이사항 : 걸그룹 노래에 환장함 식스팩을 갖기엔 슬픈 몸을 타고 남.
Advertisements

독서골든벨 2009 학년도 6 학년 1 학기 6-10 반. 1. 이야기 삼국유사 정대한 원효대사는 수행을 위해 떠나던 중 피곤하여 숲 속에서 잠이 들었다. 잠결에 너무 목이 마른 나머지 어디에 담겨있는 물을 맛있게 마셨나요 ?
1 Prof. Young Jin Nam, Daegu University 컴퓨터 구조 (Computer Architecture) 명령어 세트 : 특성과 기능 남영진
교수님 영상 제 2 장 관세법 일반 제 1 절 통칙 제 2 절 법 해석의 원칙 등 제 3 절 기한과 기간 제 4 절 서류의 송달 등 제 5 절 관세의 부과 및 징수 제 6 절 납세의무의 소멸 등.
두 손 들고 두 손 들고 찬양합니다 두 손 들고 찬양합니다 다시 오실 왕 여호와께 다시 오실 왕 여호와께 두 손 들고 찬양합니다 두 손 들고 찬양합니다 다시 오실 왕 여호와께 다시 오실 왕 여호와께 오직 주만이 나를 다스리네 오직 주만이 나를 다스리네 나 주님만을.
음란물에 대하여. 인터넷 음란물의 의미 돈벌이를 위해 단지 성적 욕망을 불러 일으키기 위한 음란한 인터넷 상의 사 진, 동영상, 만화 등을 말한다.
아이핑 소개 (탁구대회) 아이핑 담당 신동일 네이버(다음)에서 아이핑검색 아이핑 소개 (탁구대회) 담당 신동일 아이핑.
지금은 기도 하는 시간입니다 1. 송구영신예배를 위해서 2. ‘크리스마스 이브’ 행사를 준비하는 교육 기관을 위하여
아름다운 이들의 행복한 길음안나의 집.
구비 문학 콘텐츠 기획안 구비 문학의 음악화 -힙합(Hip-Hop) 음악을 중심으로 국어국문학과 이도현.
공교육 정상화 및 선행학습 금지 학부모 연수 부천송일초등학교.
안드로이드 악성코드 분석론 및 리버싱 27th OCTOBER 2013.
조교: 컴퓨터 응용 실험 컴퓨터공학 연구실 2005년 11월 10일
ISA 심화 및 start.S code 분석 SIOR 15th 최재훈.
MicroVision.- STR711F Board MicroVision & ST Seminar ARM7TDMI Processor.
1. PC 에서 회원가입 1. 회원가입 버튼 클릭 클릭.
현대사회의 여성문제와 여성복지 3조 권경욱 강향원 황대인 변갑수 박창욱 김지현.
2011년 9월 전국적 정전상태가 발생했다! 공장이 멈췄고 신호등이 꺼졌고 엘리베이터에 사람이 갇혔고 물고기가 떼죽음을 당했고
프로그램 제어 분기(branch)와 점프(jump) 명령어 PC의 값의 변경 순차적인 프로그램의 진행순서가
9장 가로채기(Interrupt) Slide 1 (of 15).
고교평준화의 득과 실 김영주 이지영 최윤영.
제4장 어셈블리어.
기본 컴퓨터 프로그래밍 Lecture #6.
Lecture #7 어셈블리어 (4) 매크로 어셈블리어 시스템프로그래밍.
CPU의 이해 CPU란 무엇인가?
Lecture # 어셈블러 설계.
PowerPC ABI 김종화.
Trac By insung.
1 컴퓨터 시스템 소개.
Code Worrior SYSDEC .
임베디드 시스템 개론 3주차 Embedded System..
버퍼 오버플로우 시스템보안 인터넷공학전공 권영락.
9장. 중앙처리 장치의 조직과 기능 다루는 내용 컴퓨터 본체에서 CPU의 위치 살펴보기 CPU의 성능, 기능, 조직
remote add origin <GitHub url>
부트 로더 (blob pre2 중심) Lecture #8.
Chapter 06 명령어와 번지지정 방식.
ARM 명령어 집합 Lecture #7.
제 6 장 8086 어셈블러 설계.
Geek-OS Project 정영진
8086 프로세서의 구조 및 동작 방식 시스템 프로그래밍 - Lecture #2 신라대학교 컴퓨터공학과 시스템 프로그래밍.
2010년 직원연수 자료 제1차 : 4월 16일 ~ 17일 제2차 : 4월 23일 ~ 24일
임베디드 소프트웨어 설계.
10장. 중앙처리 장치의 명령어 다루는 내용 어셈블리 프로그램의 이해 인터럽트(interrupt) 명령어 세트 주소 지정 방식.
제2장 프로세스 이나현.
Chapter 4 The Von Neumann Model.
초등학생이 pc방을 가도 되는가? 등마 초등학교 5학년 4반 김근아.
[ 포털 사이트 연관검색어/자동완성 등록 서비스 ]
2015. 인문소양교육.
고구려,백제,신라의 건국과 발전 Start!
8051 IO-PORT 정보통신•컴퓨터 공학부 송명규
제 2 장 어셈블러(Assemblers) 2.1 기본 어셈블러 기능 단순 SIC 어셈블러
■ 화성공장 산학인턴 버스 노선 확인 안내 문의 전화 : 안내페이지 접속 1
암 걸리는 arm리버싱 이태양 제 13회 해킹캠프 첫 인사 자기소개 0.5분 Arm 소개 5분 레지스터 및 명령어 25분
ARM Development Suite v1.2
소방시설 자동산정 프로그램.
9장. 중앙처리 장치의 조직과 기능 다루는 내용 컴퓨터 본체에서 CPU의 위치 살펴보기 CPU의 성능, 기능, 조직
전사적 위험관리를 위한 비용절감 방안.
ARM Development Suite v1.2
6월 1주 주간메뉴표 NEW 엄마손 조식 쉐프 삼촌 중식 참새 방앗간 석식 ◎원산지 안내 : 쌀(국내산)
홍미영 부평구 재정 및 운영방향 인천광역시 부평구.
3.2 분기 명령어.
ARM Development Suite v1.2
ARM Development Suite v1.2
10장. 컴퓨터 구조에 대한 세 번째 이야기 작성자: 윤성우.
100세 시대, 스마트 헬스케어와 미래직업 (3) 고령화 사회에 필요한 웨어러블.
나-는 믿음으로 주 얼굴 보리니- 아침에 깰 때에 주형상에 만족하리 나주님 닮기 원하네 믿음으로 주얼굴 보리라 -
코딩교육, 어떻게 해야 할까 이천양정여자고등학교 김가연 안선영.
제 10 장  코드 생성.
Lecture 7 7-Segment LED controller using u-controller
ARM Development Suite v1.2
Presentation transcript:

ARM Development Suite v1.2

ARM 명령어 복습 복습 ADR R0, table1 ;R0 = 0x8030 MOV R11, #4 MOV R12, #1 LDR R1, [R0, R11]! LDRB R2, [R0, R12, LSL #2] LDRSB R3, [R0], R11 LDRH R4, [R0], #-2 LDRSH R5, [R0] LDR R13, =freespace ;R13 = 0x8040 STMFD R13!, {R1, R2, R3, R4, R5} LDMFD R13!, {R6, R7, R8, R9, R10} ADD R7, R7, #0 table1 DCD 0x13579ACE, 0x87654321, 0x12345678, 0x0 tstack SPACE 20 freespace

Branch Instructions 상대 분기 절대 분기 하드웨어 분기 현재 PC 값을 기준으로 +/- 하여 분기 B/BL BX 하드웨어 분기 예외 발생시 하드웨어적으로 특정 번지로 절대 분기

ARM 명령어 실습 CodeWarrior 에서 ’06’ New Project 생성 새로운 파일 생성 파일이름.s AREA ARMex, CODE, READONLY ENTRY start … stop B . END

ARM 명령어 실습 start ; 작성할 부분 ; R0는 첫 번째 스트링의 시작 주소를 갖는다. ; R1은 두 번째 스트링의 ; BL을 사용하여 호출한다. ; 결과 확인 ; 첫 번째 스트링이 작으면 R0 < 0 ; 두 번째 스트링이 작으면 R0 > 0 ; 같으면 R0 = 0 stop B . strcmp LDRB R2, [R0], #1 LDRB R3, [R1], #1 CMP R2, #1 CMPCS R2, R3 BEQ strcmp SUB R0, R2, R3 MOV PC, LR str1 DCB "skskskskskks", 0 str2 DCB "eieieieiieieiei", 0 END

PSR (Program Status Register)

PSR Transfer Instructions MRS, MSR PSR에 값을 써넣거나 PSR에 있는 값을 레지스터에 저장하기 위해서는 MOV나 LDR 등의 명령을 쓰지 않고 위의 명령어 사용 MRS : PSR 값을 레지스터에 저장 MRS{<cond>} Rd, <psr> MSR : 레지스터의 값을 PSR에 저장 MSR{<cond>} <psr>_<fields>, Rm

PSR Transfer Instructions usr/sys 모드에서는 spsr을 접근할 수 없으며 cpsr의 제어필드는 usr모드에서 바꿀 수 없다. 특권모드에서는 cpsr의 제어필드를 바꾸어 인터럽트 마스크 설정 및 모드를 바꿀 수 있다. 그러나 T플래그를 변화시키는 것은 금지되어 있다. Ex) 특권 모드에서 SVC 모드로 바꾸기 위한 프로그램 MRS R0, CPSR ; CPSR를 읽어 R0에 적재한다. BIC R0, R0, #0x1F ; 읽어 온 데이터에 대하여 모드 비트를 0으로 설정한다. ORR R0, R0, #0x13 ; 모드 비트의 내용을 SVC 모드 값으로 바꾼다. MSR CPSR_c, R0 ; 바꾼 값을 다시 CPSR의 제어(control) 필드에 넣는다.

SWI (Software Interrupt) 소프트웨어적으로 예외를 발생시켜 USR모드에서 특권모드인 SVC 모드로 진입하기 위하여 사용 SWI{<cond>} <Immde_24> SWI 예외 발생시 R14_svc에 SWI 명령어의 다음 주소 값이 기록 R14_svc 값을 읽어 -4 한 값이 SWI 명령어의 주소 SWI 명령어를 읽어 LSB 24-bit 추출하여 SWI 번호 획득 SWI 번호에 따라 세부 핸들러 호출 SWI를 통한 세미호스팅(Semi-hosting) 기능 구현

SWP SWP 일종의 메모리 교환 명령어 LDR/STR를 한번에 처리 SWP{<cond>}{B} <Rd>, <Rm>, [<Rn>] 운영체제에서 제공하는 semaphore를 만들기 위하여 사용되는 이유로 semaphore 명령어라고도 불림

ARM 명령어 실습 CodeWarrior 에서 ’06_1’ New Project 생성 새로운 파일 생성 파일이름.s AREA ARMex, CODE, READONLY ENTRY start … stop B . END

ARM 명령어 실습 USERMODE EQU 0x10 initstack FIQMODE EQU 0x11 mrs r0, cpsr IRQMODE EQU 0x12 SVCMODE EQU 0x13 ABTMODE EQU 0x17 UNDMODE EQU 0x1b MODEMASK EQU 0x1f UndefStack EQU (0x10000 + 0x400) AbortStack EQU (UndefStack + 0x400) IRQStack EQU (AbortStack + 0x400) FIQStack EQU (IRQStack + 0x400) SVCStack EQU (FIQStack + 0x400) AREA ARMex, CODE, READONLY ENTRY start BL initstack stop B . initstack mrs r0, cpsr bic r0, r0, #MODEMASK orr r1, r0, #ABTMODE msr cpsr_f, r1 ldr sp, =AbortStack orr r1, r0, #IRQMODE ldr sp, =IRQStack orr r1, r0, #FIQMODE ldr sp, =FIQStack orr r1, r0, #SVCMODE ldr sp, =SVCStack END

과제 다음과 같은 C 프로그램을 어셈블리어로 변환하여 동작시켜라.(점프 명령어를 사용해서) unsigned int source[100]; unsigned int destination[100]; unsinged int* src, int* dst; int i; src = source; dst = destination; for( i = 0; i < 100; i++) { *dst++ = *src++; }