마이크로 프로세서-8086 인터럽트

Interrupt프로그램 실행 중에 임시 정지를 생성하는 방법이며 주변 장치가 마이크로 프로세서에 액세스 할 수 있도록합니다. 마이크로 프로세서는 해당 인터럽트에ISR (Interrupt Service Routine)은 마이크로 프로세서에게 인터럽트 처리 방법을 지시하는 짧은 프로그램입니다.

다음 이미지는 8086 마이크로 프로세서에있는 인터럽트 유형을 보여줍니다.

하드웨어 인터럽트

하드웨어 인터럽트는 지정된 핀을 통해 마이크로 프로세서로 신호를 보내 주변 장치에 의해 발생합니다.

8086에는 두 개의 하드웨어 인터럽트 핀, 즉 NMI와 INTR이 있습니다. NMI는 마스크 불가능한 인터럽트이고 INTR은 낮은 우선 순위를 갖는 마스크 가능한 인터럽트입니다. 하나 이상의 인터럽트 핀이 인터럽트 승인이라고하는 INTA입니다.

NMI

마스킹 가능한 인터럽트 요청 핀 (INTR)보다 우선 순위가 높은 단일 비 마스크 가능한 인터럽트 핀 (NMI)이며 유형 2 인터럽트입니다.

이 인터럽트가 활성화되면 다음 작업이 수행됩니다.

  • 진행중인 현재 명령을 완료합니다.

  • 플래그 레지스터 값을 스택에 푸시합니다.

  • 반환 주소의 CS (코드 세그먼트) 값과 IP (명령 포인터) 값을 스택에 푸시합니다.

  • IP는 단어 위치 00008H의 내용에서로드됩니다.

  • CS는 다음 단어 위치 0000AH의 내용에서로드됩니다.

  • 인터럽트 플래그와 트랩 플래그가 0으로 재설정됩니다.

INTR

인터럽트 플래그 설정 명령을 사용하여 인터럽트가 활성화 된 경우에만 마이크로 프로세서가 인터럽트되기 때문에 INTR은 마스크 가능한 인터럽트입니다. 인터럽트 플래그 지우기 명령을 사용하여 활성화해서는 안됩니다.

INTR 인터럽트는 I / O 포트에 의해 활성화됩니다. 인터럽트가 활성화되고 NMI가 비활성화되면 마이크로 프로세서는 먼저 현재 실행을 완료하고 INTA 핀에 '0'을 두 번 보냅니다. 첫 번째 '0'은 INTA가 외부 장치에 준비를 알리고 두 번째 '0'동안 마이크로 프로세서가 프로그래밍 가능한 인터럽트 컨트롤러로부터 8 비트, 즉 X를 수신함을 의미합니다.

이러한 조치는 마이크로 프로세서에 의해 수행됩니다.

  • 먼저 현재 명령을 완료합니다.

  • INTA 출력을 활성화하고 인터럽트 유형 (예 : X)을 수신합니다.

  • 플래그 레지스터 값, 반환 주소의 CS 값 및 반환 주소의 IP 값이 스택에 푸시됩니다.

  • IP 값은 단어 위치 X × 4의 내용에서로드됩니다.

  • CS는 다음 단어 위치의 내용에서로드됩니다.

  • 인터럽트 플래그 및 트랩 플래그가 0으로 재설정됩니다.

소프트웨어 인터럽트

일부 명령은 인터럽트를 생성하기 위해 프로그램의 원하는 위치에 삽입됩니다. 이러한 인터럽트 명령은 다양한 인터럽트 핸들러의 작동을 테스트하는 데 사용할 수 있습니다. 그것은 포함합니다-

INT- 유형 번호가있는 인터럽트 명령어

2 바이트 명령어입니다. 첫 번째 바이트는 연산 코드를 제공하고 두 번째 바이트는 인터럽트 유형 번호를 제공합니다. 이 그룹에는 256 개의 인터럽트 유형이 있습니다.

실행에는 다음 단계가 포함됩니다.

  • 플래그 레지스터 값이 스택으로 푸시됩니다.

  • 반환 주소의 CS 값과 반환 주소의 IP 값이 스택으로 푸시됩니다.

  • IP는 단어 위치 '유형 번호'× 4의 내용에서로드됩니다.

  • CS는 다음 단어 위치의 내용에서로드됩니다.

  • 인터럽트 플래그 및 트랩 플래그가 0으로 재설정됩니다.

type0 인터럽트의 시작 주소는 000000H이고 type1 인터럽트의 경우 00004H는 type2의 경우와 유사하게 00008H이고 …… 처음 5 개의 포인터는 전용 인터럽트 포인터입니다. 즉-

  • TYPE 0 인터럽트는 0으로 나누는 상황을 나타냅니다.

  • TYPE 1 인터럽트는 프로그램 디버깅 중 단일 단계 실행을 나타냅니다.

  • TYPE 2 인터럽트는 마스크 불가능한 NMI 인터럽트를 나타냅니다.

  • TYPE 3 인터럽트는 중단 점 인터럽트를 나타냅니다.

  • TYPE 4 인터럽트는 오버플로 인터럽트를 나타냅니다.

유형 5에서 유형 31까지의 인터럽트는 다른 고급 마이크로 프로세서 용으로 예약되어 있으며 32에서 유형 255까지의 인터럽트는 하드웨어 및 소프트웨어 인터럽트에 사용할 수 있습니다.

INT 3- 브레이크 포인트 인터럽트 명령어

op-code가 CCH 인 1 바이트 명령어입니다. 이러한 명령어는 프로그램에 삽입되어 프로세서가 거기에 도달하면 프로그램의 정상적인 실행을 중지하고 중단 점 절차를 따릅니다.

실행에는 다음 단계가 포함됩니다.

  • 플래그 레지스터 값이 스택으로 푸시됩니다.

  • 반환 주소의 CS 값과 반환 주소의 IP 값이 스택으로 푸시됩니다.

  • 단어 위치 3 × 4 = 0000CH의 내용에서 IP를로드합니다.

  • CS는 다음 단어 위치의 내용에서로드됩니다.

  • 인터럽트 플래그 및 트랩 플래그가 0으로 재설정됩니다.

INTO-오버 플로우 명령어 인터럽트

1 바이트 명령어와 니모닉 INTO. 이 명령어의 연산 코드는 CEH입니다. 이름에서 알 수 있듯이 조건부 인터럽트 명령어입니다. 즉, 오버플로 플래그가 1로 설정된 경우에만 활성화되고 인터럽트 유형 번호가 4 인 인터럽트 핸들러로 분기됩니다. 오버플로 플래그가 재설정되면 실행은 계속됩니다. 다음 지시.

실행에는 다음 단계가 포함됩니다.

  • 플래그 레지스터 값은 스택으로 푸시됩니다.

  • 반환 주소의 CS 값과 반환 주소의 IP 값이 스택으로 푸시됩니다.

  • IP는 단어 위치 4 × 4 = 00010H의 내용에서로드됩니다.

  • CS는 다음 단어 위치의 내용에서로드됩니다.

  • 인터럽트 플래그 및 트랩 플래그가 0으로 재설정됩니다.