ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [컴퓨터 구조 / 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
Designed by Tistory.