디지털 논리회로
디지털 논리회로 / carry와 overflow의 차이
clean_h
2021. 5. 3. 21:43
728x90
4개 flag 중 carry와 overflow의 차이
C: MSB로부터 나오는 carry out 마지막 adder의 carry out이다. 64bit addition을 만들 때 하위 32bit addition과 상위 32bit addition 더하는데 C를 사용한다. Carry bit은 그 주어진 carry flag를 사용하여 다시 carry in 값으로 넣어주면서 상위 32bit을 더하는 데에 사용한다. C는 주어진 alu bit 수보다 큰 수를 연산할 때 더하거나 뺄 때 사용하게 된다.
V : overflow는 31번째 co과 30번째 co을 exclusive한 것이다. overflow가 생기면 믿을 수 없는 연산결과가 생기기 때문에 flag C, N, Z가 모두 무의미하다. overflow가 생기지 않을 때 만 크다 작다 판단이 가능하다. Overflow는 n bit 정수 더하거나 뺐을 때 음수나 큰 양수가 나올 때 같은 사인을 갖는 큰 수를 더하거나 다른 사인을 갖는 큰 수를 positive와 negative를 더했을 때 절대 overflow가 생기지 않는다. 하나의 양수와 음수를 더할 때 같은 사인을 갖는 두수를 뺄 때는 오버된다. 양수와 양수를 더했는데 너무 큰 수가 나와 n bit에 담지 못할 때 overflow가 생긴다.
728x90