인프런 커뮤니티 질문&답변

남윤아님의 프로필 이미지
남윤아

작성한 질문수

ARM Cortex-M 프로세서 프로그래밍

s304_IT 명령어

it 명령어 중첩

작성

·

241

1

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

안녕하세요! 교수님. 강의를 듣다가 It관련하여 궁금증이 생겨 질문글을 올립니다.

 

It 명령어는 C언어에서 If명령어와 같은 역활을 하는데 그렇다면 C언어 처럼

It 멍령어도 중첩해서 사용할 수 있나요??

예를 들어

cmp r0, r1

ite ge

it ge

movge r0, r0

moglt r0, r1

이런식으로 사용할 수 있을까요?

답변 2

0

남윤아님의 프로필 이미지
남윤아
질문자

감사합니다!

0

홍영기님의 프로필 이미지
홍영기
지식공유자

안녕하세요. 남윤아님!

결론부터 말씀드리자면 중첩은 허용되지 않습니다.

IT 명령어는 테스트 명령어로써 말씀하신것처럼 C언어의 if 와 동일한 효과를 갖는 명령어가 맞습니다.

이 명령어는 EPSR 레지스터 내의 IT 비트(Bits 26:25, 15:10) 와 의존성 관계를 맺고 있습니다. IT 명령어의 테스트 결과가 EPSR 에 저장되고 그 값을 기초로 그 이후 명령어의 실행 여부(e.g. movge r0, r0)가 결정되는 것이지요.

따라서 중첩 사용이 되지 않는 것입니다.

남윤아님의 프로필 이미지
남윤아
질문자

답변 감사합니다. 교수님!

그렇다면 만약 중첩이 성립되려면 EPSR레지스터나 기타 관련된 레지스터가 필요에 따라 더 필요하다는 말씀이신건가요??

홍영기님의 프로필 이미지
홍영기
지식공유자

말씀드린것처럼 it 명령어만으로는 중첩 사용이 허용이 되지 않습니다.

그러므로 cmp, tst, teq 등의 테스트 명령어와 bne beq bgt ... 조건 분기문을 이용하셔야 할 줄로 압니다.

이 글을 참고하세요.

남윤아님의 프로필 이미지
남윤아

작성한 질문수

질문하기