Presentation is loading. Please wait.

Presentation is loading. Please wait.

ARM Development Suite v1.2

Similar presentations


Presentation on theme: "ARM Development Suite v1.2"— Presentation transcript:

1 ARM Development Suite v1.2

2

3

4 메모리 접근 명령어 주소지정 방식 간접 주소지정 방식 베이스 레지스터 기반 LDR r0, [r1, #-4]
LDR r0, [r1, -r2] LDR r0, [r1, -r2, LSL #4] LDR r0, [r1, r2, LSL #4] LDR r0, [r1, r2, RRX]

5 메모리 접근 명령어 자동 증가/감소 기능 Pre-index Post-index ※ C++의 연산자 ++
<offset_mode> := [Rn, offset_value]! 일반 방식과 동일하게 메모리 접근 주소값 계산 후 접근 메모리 접근 후에 베이스 레지스터 값 update Post-index <offset_mode> := [Rn], offset_value 베이스 레지스터 값으로 메모리 접근 ※ C++의 연산자 ++

6 메모리 접근 명령어 LDR r0, [r1] STR r0, [r1, #4] LDR r0, [r1, #-4]!
r0 ← MEM[r1] STR r0, [r1, #4] r0 → MEM[r1+4] LDR r0, [r1, #-4]! r0 ← MEM[r1 – 4], r1 ← r1 – 4 STR r0, [r1], #0xC r0 → MEM[r1], r1 ← r1 + 0xC r0 ← MEM[r1 + (r2<<2)] LDR r0, [r1, r2, LSL #2]

7 메모리 접근 명령어 접근 단위에 의한 분류 영-확장, 부호-확장 Word Half-word Byte
LDR/STR Word LDRH/STRH Half-word LDRB/STRB Byte 영-확장, 부호-확장 LDRSH/LDRSB Signed-extension 32-bit 레지스터에 half-word로 읽어온 뒤에 남는 앞부분을 부호비트로 채움 LDRH/LDRB Zero-extension 남는 앞부분을 0으로 채움

8 Multiple Data Transfer Instructions
LDM/STM 여러 개(최대 16개)의 레지스터의 내용을 한꺼번에 load/store 데이터 블록 복사 혹은 스택 동작에 이용 레지스터 리스트 순서에 관계없이 낮은 주소에 낮은 숫자의 레지스터, 높은 주소에 높은 숫자의 레지스터가 match

9

10 S bit - pc를 로드하는 LDM에 대해, SPSR을 같이 복구시킬지, 혹은 pc를 로드하지 않는 모든 LDM/STM에 대해 프로세서가 특권 모드에 있을 때, 유저 모드의 레지스터들만 사용할지

11

12

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

14 ARM 명령어 실습 1 CodeWarrior 에서 ’04’ New Project 생성 새로운 파일 생성 01.s
ADR R0, table1 LDR R1, [R0] LDRB R2, [R0] LDRSB R3, [R0] LDRH R4, [R0] LDRSH R5, [R0] STR R1, [R0, #4] STRB R2, [R0, #8] STRH R3, [R0, #12] ADD R7, R7, #0 table1 DCD 0x1234ABCD, 0x0, 0x0, 0x0

15 ARM 명령어 실습 2 CodeWarrior 에서 ’04_1’ New Project 생성 새로운 파일 생성 02.s
ADR R0, table1 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] ADD R7, R7, #0 table1 DCD 0x0, 0x , 0x , 0x0

16 ARM 명령어 실습 3 CodeWarrior 에서 ’04_2’ New Project 생성 새로운 파일 생성 03.s
LDR R11, =bsource LDR R12, =bdestination LDMIA R11!, {R0-R9} STMIA R12!, {R0-R9} LDMIA R11, {R0-R9} STMIA R12, {R0-R9} ADD R7, R7, #0 bsource DCD 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19 bdestination DCD 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

17 ARM 명령어 실습 4 CodeWarrior 에서 ’04_3’ New Project 생성 새로운 파일 생성 04.s
LDR R13, =freespace MOV R0, #10 MOV R2, #11 MOV R4, #12 MOV R6, #13 STMFD R13!, {R0, R2, R4, R6} LDMFD R13!, {R1, R3, R5, R7} ADD R7, R7, #0 tstack SPACE 256 freespace


Download ppt "ARM Development Suite v1.2"

Similar presentations


Ads by Google