작성
·
240
1
답변 1
0
안녕하세요. 꽃밭위의 제임스님!
Thumb-2 에 대해서 질문주셨네요. 영상속에서 설명한 것처럼 CORTEX-M4 프로세서는 ARM 명령은 지원하지 않습니다. 그럼 Thumb 명령어만 생각하면 되겠죠?
예를들어 다음과 같은 명령어의 경우
mov r0,#1 는 Thumb(16)명령일까요? Thumb-2(32)명령일까요?
이 경우 컴파일러는 가급적 Thumb 명령어를 이용하여 기계어 코드를 생성해줍니다.
우리가 Thumb 이나 Thumb-2 을 특별히 선언하지 않을 경우 자동으로 Thumb 으로 생성해주죠. 불가능할 경우에만 Thmub-2 로 변환(묵시적인 변환) 시켜준다고 보시면 됩니다.
사용자가 필요하다면 다음처럼 명시적인 변환도 가능합니다.
예를들어 코드를 다음과 같이 작성하였을 경우는
mov.w r0,#1 는 Thumb-2(32)명령으로 만들어지고요, (w: wide)
mov.n r0,#1 는 Thumb(16)명령으로 만들어집니다. (n: narrow)
지금까지 설명드린 내용은 앞으로 보실 강의 영상 속에서 확인하실 수 있어요.
또 궁금한 점 있으시면 질문남겨주시고요.
행복한 하루되세요. 나중에 수강후기 꼭 부탁드립니다 :)