-
[컴퓨터 구조 / Computer Architecture] 내가 보려고 만든 ARM Assembly 명령어 정리NOTE 2020. 11. 19. 11:37
1. 기본 용어 정리
- OP code : 어셈블리 명령어 통칭
- cond : OP code 뒤에 붙여서 조건부 명령 수행
- Rd : Destination Register, 결과값을 저장하는 레지스터 (R0 ~ R15)
- Rn : 피연산자 1 (R0 ~ R15)
- Rm : 피연산자 2 , 레지스터 뿐만 아니라 상수, 주소, 쉬프트 연산식 등 다양하게 사용 가능
2. ARM assembly 명령어
① 산술 연산
- ADD : Rd = Rn + Rm
- SUB : Rd = Rn - Rm
② 비트 연산
- AND : Rd = Rn & Rm
- ORR : Rd = Rn | Rm
- EOR : Rd = Rn ^ Rm
- BIC : Rd = Rn & !Rm
③ 대입 연산
- MOV : Rd = Rm
④ 시프트 연산
- LSL : <<, left shift
- RSL : >>, right shift
⑤ 분기 명령
- B : goto
- BL : Sub-routine call, 분기 후 명령 끝나면 다시 돌아옴
⑥ 비교 연산
- CMP : if (Rn - Rm == 0)
⑦ load / store 명령
- LDR r1, [r2, #16] : r2에서 16byte만큼 더한 주소에서 정수형 값 읽어와 r1에 저장
- STR r1, [r2], #4 : r2의 주소에 r1 저장하고, r2를 4 증가시킴
- LDMFD sp!, {r7-r9, lr} : 스택에 r7-r9와 lr 레지스터를 저장하고 sp를 그만큼 감소시킴
- SDMFD sp!, {r7-r9, pc} : 스택에 r7-r9와 pc 레지스터를 복원하고 sp를 그만큼 증가시킴
'NOTE' 카테고리의 다른 글
[시계열/time-series analysis] ARMA와 ARIMA의 차이 (0) 2021.06.02