AustinKim 2025. 9. 16. 21:00

MVN은 데이터에 ~ 연산(NOT)을 수행한 결과를 레지스터에 이동하는 명령어입니다. 다음 그림을 보면서 MVN 명령어를 배워 봅시다.


MVN 명령어는 그림과 같이 ~#imm으로 지정된 상수 값을 목적 레지스터인 <Rd>에 저장하는 동작입니다. 여기서 '~' 는 '0으로 된 비트를 1' 혹은 '1로 설정된 비트를 0'으로 바꿔주는 연산자입니다. 

그렇다면 다음 mvn 명령어는 어떻게 해석할 수 있을까요?

mvn r0, #7

먼저 7에 대해 ~ 연산을 수행하면 결과값은 0xffff_fff8입니다. ~7의 연산 결과인 0xffff_fff8이 r0 레지스터로 이동합니다.  

이처럼 MVN은 이동하려는 상수에 ~연산을 한 결과를 목적 레지스터에 저장하는 명령어입니다.