하드웨어

[하드웨어 해킹] Arm Architecture 2 (2024)

0x6b6569 2024. 2. 15. 18:34

ARM 어셈블리 기본 구조

 

1. 명령어 {s} {condition} Rd, Rn, {Operand2}

  • s에는 실행 결과에 따라서 CPSR flag field를 설정한다.
  • condition: CPSR flag field에 따라서 해당 명령어를 실행 (기본적으로 ALWAYS로 실행)
  • Rd: destination register로 명령어의 실행 결과
  • Rn: 첫번째 피연산자. 레지스터와 상수값을 넣을 수 있음
  • Operand2 : 두번째 피연산자, 레지스터, 상수 혹은 shift 값이 들어감
SUBS r4, r5, r6  // 명령어 뒤에 s를 붙여 flag field 설정
MOVEQ r0, r1     // r5와 r6이 같다면 실행
MOVNE r2, r3     // r5와 r6이 같지 않다면 실행
MOV(AL) r4, r5   // 무조건 실행