728x90
ARM 명령어 요약

1. ASL, ASR, LSL, LSR, ROR

ASL : 왼쪽으로 쉬프트, 빈자리 부호 (Arithmetic Shift Left)

ASR : 오른쪽으로 쉬프트, 빈자리 부호 (Arithmetic Shift Right)

LSL : 왼쪽으로 쉬프트, 빈자리 0 (Logical Shift Left)

LSR : 오른쪽으로 쉬프트, 빈자리 0 (Logical Shift Right)

ROR : 오른쪽으로 로테이션 (Rotation Right)



2. MOV


예)

MOV r0, [r1, r2] : r1+r2주소에 있는 값을 읽어서 r0에 저장한다.

MOV r0, r1, ROR #1 : r1을 오른쪽으로 한 비트만큼 rotation해서 r0에 저장한다.



3. ADD, SUB, AND, ORR

산술연산들.



예)

ADD r1, r2, #4 : r2에 4를 더해서 r1에 저장한다.

SUB r1, r1, #1 : r1에 1을 뺀다.

ORR r1, r2, r3, LSR r4 : r3을 오른쪽으로 쉬프트를 r4만큼 한 후, 그 결과를 r2와 OR하여 r1에 저장한다.



4. B, BL, BNE, BEQ, CMP

분기명령들.



예)

B there : 라벨이 there인 곳으로 무조건 분기한다. (Branch)

BEQ there : 플래그가 0이면 there로 분기한다. 아니면 다음 명령어를 수행한다. (Branch Equal)

BNE there : 플래그가 0이 아니면 there로 분기한다. 아니면 다음 명령어를 수행한다. (Branch Not Equal)

BL sub+ROM : 계산된 위치의 서브루틴을 호출한다. (Branch with Link)

CMP r1, #4 : r1이 4이면 플래그 0로 셋팅된다.



5. LDR, STR {레지스터}, {주소}, {증가량}

   로드, 스토어 명령들.

LDRB : byte변수를 불러올 때

LDRH : short변수를 불러올 때

LDR : int변수를 불러올 때

STR도 마찬가지다.



예)

LDR r1, [r2, #16] : r2에 16byte만큼 더한 주소에서 정수형 값을 읽어와 r1에 저장한다.

STR r1, [r2], #4 : r2의 주소에  r1을 저장하고 난 후, r2를 4만큼 증가시킨다.



6. LDM, STM

   로드, 스토어 명령들.(블록단위)

LDMFD : Load Multiple Full Descending / LDMIA : Load Multiple Increment After

STMFD : Store Multiple Full Descending / STMDB : Store Multiple Decrement Before

LDMED : Load Multiple Empty Descending / LDMIB : Load Multiple Increment Before

STMED : Store Multiple Empty Descending / STMDA : Store Multiple Decrement After

LDMFA : Load Multiple Full Ascending / LDMDA : Load Multiple Decrement After

STMFA : Store Multiple Full Ascending / STMIB : Store Mutiple Increment Before

LDMEA : Load Multiple Empty Ascending / LDMDB : Load Multiple Decrement Before

STMEA : Store Multiple Empty Ascending / STMIA : Store Multiple Increment After
728x90

'컴퓨터구조' 카테고리의 다른 글

컴퓨터 구조 정리 9번째  (0) 2012.07.13
컴퓨터 구조 정리 8번째  (0) 2012.07.13
컴퓨터 구조 정리 6번째  (0) 2012.07.13
컴퓨터 구조 정리 5번째  (0) 2012.07.13
컴퓨터 구조 정리 4번째  (0) 2012.07.13
Posted by 정망스
,


맨 위로
홈으로 ▲위로 ▼아래로 ♥댓글쓰기 새로고침