Arm SWAP Instruction ( 메모리 접근, SWP, MESI protocol, LDREX, STREX )
Memory access 중에 swap instruction을 보자. SWAP Instruction swp r0, r1, [r2] 이런 식으로 사용하는데, 동작은 2가지로 나눠 볼 수 있다. 1. r2가 가지고 있는 주소의 데이터를 r0에 저장하고 2. r1의 값을 r2의 메모리 값에 저장한다. 즉 swapping 동작을 수행한다. 이런 동작이 왜 필요할까? 자원을 공유하기 위해서이다. 굉장히 중요한 동작인데 예를 들어, 하나의 프린터를 여러 컴퓨터가 공유한다고 할 때, 동시에 사용할 수 없기 때문에 사용 가능한지 안 한지 계속 확인해야 한다. 이런 부분을 확인하려면 메모리에 "Lock"이라는 부분을 확인해야 한다. 즉, Lock의 정보를 불러와서 확인하고 업데이트해야 하기 때문에 STR, LDR을 사용..
2022. 4. 7.
Arm Aruthmetic instruction ( 산술 명령어, ADD, ADC, SUB, SBC, RSB, RSC, CLZ )
Data processing 중 하나인 Aruthmetic instruction을 알아보자. Aruthmetic 1. ADD - Rd = Rn + N 굉장히 단순하다. adds는 연산이 끝난 후에 nzcv flag를 업데이트한다는 차이가 있다. add r0, r1, r2 ; r0 = r1 +r2 add r0, r1, #256 ; r0 = r1 + 256 adds r0, r2, r3, lsl#1 ; r0 = r2 + (r3
2022. 4. 7.