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

김상현님의 프로필 이미지

작성한 질문수

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

s324_비교 명령어

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

해결된 질문

23.03.03 11:05 작성

·

337

0

강의 잘 보고 있습니다.

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

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

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

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

이유가 무엇인가요?

답변 1

0

김상현님의 프로필 이미지
김상현
질문자

2023. 03. 03. 11:12

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