• 카테고리

    질문 & 답변
  • 세부 분야

    임베디드 · IoT

  • 해결 여부

    해결됨

cmp r0, #0 실행시 상태 레지스터의 C = 0b1이 되는 이유가 무엇인가요?

23.03.03 11:05 작성 조회수 221

0

강의 잘 보고 있습니다.

궁금한게 있어서 질문 드립니다.

제가 알기론 cmp 명령어를 실행하면 오퍼랜드끼리 빼는 것으로 알고 있습니다.

따라서 cmp r0, #0시 Z flag가 1이 되는 것은 이해가 갑니다. 0 - 0 을 뺀 결과도 0이니 Z flag가 1이 되겠죠.

근데 C flag가 왜 1이되는지는 이해가 가지 않습니다.

이유가 무엇인가요?

답변 1

답변을 작성해보세요.

0

김상현님의 프로필

김상현

질문자

2023.03.03

아 0의 2의 보수 값이 0xffffffff에 1을 더한 값이라 캐리가 발생하는 것이군요...