1. overflow 란?
- 연산의 결과가 32-bit word로 표현될 수 없는 것.
(연산 결과 부호가 반대로 나오거나, 값이 틀리게 나옴.)
2. overflow가 발생하는 경우
3. exception (예외)
- exception (예외) 이란?
프로그램의 정상적인 수행을 을 방해하는 계획되지 않은 사건.
- exception이 발생하면
- 정상적인 순서를 무시하고 kernel code(exception handler)를 실행.
[exception handler : 운영체제 안에 있는, exception을 처리하는 함수이다. 어떻게 처리하는 지는 사용자의 설정에 따라 달라질 수 있다.]
- 처리하고 나면 원래 코드로 돌아와 exception이 발생했던 코드의 다음 코드를 실행한다.
4. overflow가 발생하면 어떻게 되는가?
- add, addi, sub
연산 결과 overflow가 되면 exception을 발생한다.
(overflow [O], overflow exception [O])
- addu, addiu, subu (끝의 u는 unsigned / overflow undetected 를 뜻함.)
연산 결과 overflow가 되도 exception이 일어나지 않는다.
즉, exception handler가 실행되지 않고 다음 명령을 수행한다.
(overflow [O], overflow exception [X])