ARM 길잡이 2편 데이터이동명령(MOV,MVN)
일이바빠서 영국에있다가 돌아와서 쓰게되네요
이번 시간엔 데이터 이동 명령어에 대하여 알아봅시다.
여러분이 가장 자주사용하고 잘알수도있는명령어인데요
MOV 데이터를받을 레지스터, 데이터를 가져올 레지스터 또는 값.
MOV R1, #92 R1=92
5C 10 A0 E3
#92 첫번째인자를넘지않음(255넘고510보다작으면 1C) MOV의세번째타입
MOV R1, R5 R1=R5
05 10 A0 E1
5번째인자 첫번째인자를넘지않음(255넘고510보다작으면 1C) MOV의첫번째타입
MVN Rd, 레지스터 또는 값. Rd:=레지스터 또는 값의 음의 값
MVN R1, #92 R1=109 5C 10 E0 E3
라고 생각하실수있습니다.
MVN 값이 이해가 안가실수도있는데
2진수로
92 =0110 1101
입니다
음의값이란 0과 1을 반전시키는것으로
109 =10010010
이기때문에 109가됩니다.
MVN R1,#0 을하시면 최고높은 00 10 E0 E3
R1=0xFFFFFFFF
가 됩니다.
그리고 여러분이만약
값을 곱하고싶다 하시면 LSL 명령어가있습니다
MOV R1,R5, lsl #3 R1= R5*8(2의3승) 85 11 A0 E1
MOV R1,R5, lsl #8 R1= R5*256(2의8승) 05 14 A0 E1
다음시간엔 조건부 분기 CMP BEQ에 대하여 알아봅시다