폴링은 일반적으로 사용하는 방법으로 이해하기가 쉽지만, 인터럽트는 처음에는 잘 이해하기가 어렵다. 인터럽트를 만났을 때 CPU는 다음과 같이 동작한다. CPU는 지금까지 수행하던 프로그램은 일단 중단하고 미리 정해놓은 인터럽트 루틴을 수행하게 된다. 그 루틴의 수행이 끝나면 다시 원래 실행하던 프로그램으로 돌아가서 하던 일을 계속한다.
폴링과 인터럽트는 각기 장단점이 있으므로 사용자가 어느 것을 사용할 것인가를 결정해야 한다. 폴링은 모든 경우의 입력 또는 값의 변화에 대응하여 처리가 가능하지만 인터럽트는 하드웨어적으로 지원되는 몇 개의 입력 또는 값의 변화에만 대응 처리가 가능하다. 즉, CPU를 만들어 낼 때부터 결정이 되어 있는 것이다. 처리 속도는 일반적인 경우에 인터럽트가 더 빠르다고 할 수 있다.
일반적으로 CPU 내부 또는 주변에서는 많은 값 또는 신호의 변화가 일어나게 된다. 예를 들면 외부 입력 핀의 레벨이 변화하거나, 내부의 카운터가 증가하여 오버플로우(overflow)가 일어나거나, 시리얼 포트로 입력 신호가 들어오거나 하는 등등의 많은 변화가 동시 또는 약간의 시간차를 두고 무작위로 발생한다. 만약에 인터럽트라는 것이 없어서 이 모든 것을 프로그래머가 직접 관리해야 한다면 너무나도 복잡하여 프로그래밍이 거의 불가능할 지도 모른다.
보통 특정값 또는 입력 핀의 레벨이 변하면 프로그래머는 CPU에게 그에 상응하는 처리를 하도록 만들어 준다. 만약에 폴링 기법을 사용했다면 프로그래머는 자신의 마음대로 그 자리에서 처리를 하거나 CALL, JMP 등을 사용할 수 있다. 그러나 인터럽트 기법을 사용했다면 프로그래머는 그 CPU를 만들 때 이미 정해진 일정한 규칙에 따라야 한다. 8051에서는 5개의 인터럽트를 지원하며, 특정 인터럽트가 발생하면 그 인터럽트에 할당해 준 특정 번지로 제어를 옮긴다. 분기의 방법은 LCALL과 유사하다. 즉, 스택에 돌아올 번지를 저장한 후에 분기하게 된다. 이렇게 분기된 제어는 인터럽트 전용 복귀 명령인 RETI로 원래의 흐름으로 되돌아온다. RETI는 CALL에서의 복귀명령인 RET와는 다른 명령이다.