2014-09-17 3 views
-2

누군가가 나에게 이러한 플래그로 특히 캐리 및 오버플로 플래그로 많은 연습을 제공 할 수 있는지 궁금합니다.여기에 캐리 플래그가 설정된 이유는 무엇입니까?

어쨌든 내 질문은 이것입니다.

나는 강의 노트에서 찾고 있어요 나는 5 비트 비교

CMP $ 12 $ 6가됩니다에 대한 참조

00110 -

00110 
+10100 
------- 
11010 

캐리로 변경 될 수 있습니다 01100 CF = 1 및 오버 플로우 플래그 OF = 0

Cmp $ -6, $ -12는 10100-11010이며, 이는

10100 
+00110 
------- 
11010 

CF = 1, = 0

의 오버플로 신고 제가 오버 플로우 플래그가 0으로 설정되어 이해 믿기 때문에이 소수 공제 (또는 추가, 당신이 어떻게 보는가에 따라) 작은 수의 결과가 결코 2^5 범위의 숫자를 능가하지 못합니다.

캐리는 어떻게됩니까? 나는 그것이 마지막 비트가 마지막 컬럼/비트에서 이월 된 것을 의미한다고 생각했다. 이

캐리 플래그를 잘 설정됩니다 방법
1 (carried over from last column) 
    1100......(random binary for the rest ...) 
+ 0100...... 
------------- 

같은 것이 있다면

는 내 말은 무엇입니까? 1은 왼쪽 열에서 2 번째 1 + 1에서 나왔습니다.

두 가지 예에서, 가장 왼쪽 열에 1이 없습니다.

무슨 일 이니?

감사합니다.

+2

12 = 1100 아니요 10100 – chouaib

+0

오, 감사합니다. 내가 의미하는 바는 -12. 지금 편집되었습니다. –

+2

당신의 계산 내에서 아직 편집되지 않았습니다! 일단 완료하면 – chouaib

답변

0

내부적으로 뺄셈을 수행하는 방법은 중요하지 않지만 일부 프로세서에는 실제 빼기 하드웨어가 포함되어 있습니다. 문제는 뺄셈은 뺄셈을 의미하며 두 번째 숫자를 무효화하지 않고 추가한다는 것을 의미합니다. X86의 경우 캐리 플래그는 숫자를 부호없는 숫자로 취급하는 "차용"표시기이므로 6 - 12의 결과는 "차용"이됩니다. 오버플로 플래그는 숫자를 부호로 처리하고 6 - 12 = -6이므로 오버플로가 발생하지 않았습니다.