Tải bản đầy đủ (.ppt) (26 trang)

ĐIỆN tử VIỄN THÔNG microprocessor final ver1 part5 khotailieu

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (577.81 KB, 26 trang )

© DHBK 2005

1/Chapter

Nội dung môn học
1.
2.
3.
4.
5.
6.
7.

Giới thiệu chung về hệ vi xử lý
Bộ vi xử lý Intel 8088/8086
Lập trình hợp ngữ cho 8086
Tổ chức vào ra dữ liệu
Ngắt và xử lý ngắt
Truy cập bộ nhớ trực tiếp DMA
Các bộ vi xử lý trên thực tế


© DHBK 2005

2/Chapter

Chương 5: Ngắt và xử lý ngắt








Giới thiệu về ngắt
Đáp ứng của CPU khi có yêu cầu ngắt
Các thủ tục ngắt của người sử dụng
Xử lý ưu tiên ngắt
Mạch điều khiển ngắt ưu tiên 8259A
Ngắt trong máy tính IBM PC


© DHBK 2005

3/Chapter

Giới thiệu về ngắt

• 2 loai ngắt:
 Ngắt cứng: tín hiệu yêu cầu ngắt từ
 NMI (ngắt không che được)
 Lỗi chẵn lẻ và các lỗi hệ thống nghiêm trọng khác (ví dụ: mất nguồn)

và INTR (ngắt che được)

 Ngắt mềm: CPU thực hiện các lệnh ngắt INT N, 0=< N <=255


© DHBK 2005

4/Chapter


Giới thiệu về ngắt


© DHBK 2005

5/Chapter

Giới thiệu về ngắt


© DHBK 2005

6/Chapter

Đáp ứng của CPU khi có yêu cầu ngắt
• Bảng vector ngắt: 1 Kbytes 00000H đến 003FF H
 256 vector ngắt
 1 vector 4 bytes, chứa IP và CS của CTCPVN
 32 vector đầu dành riêng cho Intel
 224 vector sau dành cho người dùng


© DHBK 2005

7/Chapter

Đáp ứng của CPU khi có yêu cầu ngắt
Chương trình chính


CPU:
•Cất thanh ghi cờ F
•Xoá IF và TF
•Cất CS và IP
•lấy địa chỉ CTCPVN

CPU:
•Lấy lại IP và CS
•Lấy lại thanh ghi cờ F

CTCPVN
lệnh cất các
thanh ghi

lệnh lấy các
thanh ghi
IRET


© DHBK 2005

8/Chapter

Các thủ tục ngắt của người sử dụng
• Thiết lập vector ngắt:
 Cất vector ngắt hiện tại:
Dùng hàm 35H của ngắt 21H của DOS
 Vào: AH=35h, AL= số hiệu ngắt
 Ra: ES:BX = địa chỉ đoạn : địa chỉ offset của CTCPVN


Cất ES và BX vào thanh ghi hoặc ô nhớ

 Đưa vector của thủ tục ngắt của người sử dụng vào bảng vector
ngắt:
Dùng hàm 25H của ngắt 21H
 Vào: AH=25H, AL= số hiệu ngắt, DS:DX= địa chỉ đoạn: địa chỉ offset cảu
CTCPVN của người sử dụng

 Khôi phục lại vector cũ trước khi kết thúc CTCPVN của người sử
dụng


© DHBK 2005

9/Chapter

Các thủ tục ngắt của người sử dụng
.Model Small
.Stack 100
.Data
OLD_IP
OLD_CS

DW
DW

.Code
Main Proc
;Lấy vector cũ của ngắt 40H
MOV AH, 35H

MOV AL, 40H
INT
21H
MOV OLD_IP, BX
MOV OLD_CS, ES
;Thiết lập vector ngắt 40H mới
MOV DX, offset New40
MOV AX, CS
PUSH DS
MOV DS, AX
MOV AH, 25H
INT
21H
POP DS
Main Endp
New40
Proc
;các lệnh của CTCPVN
New40 Endp
End Main

?
?


© DHBK 2005

Xử lý ưu tiên ngắt

10

/Chapter5

• Ngắt có mức ưu tiên cao nhất sẽ được phục vụ trước
• Các mức ưu tiên:
 Ngắt
 Ngắt
 Ngắt
 Ngắt

nội bộ: INT 0, INT 1
không che được: NMI
che được INTR
mềm INT N

• CPU sẽ xử lý thế nào nếu CPU đang thực hiện phép chia
và số chia bằng 0 đồng thời có yêu cầu ngắt từ chân
INTR?


© DHBK 2005

Mạch điều khiển ngắt 8259A

11
/Chapter5


© DHBK 2005

Mạch điều khiển ngắt 8259A


12
/Chapter5


© DHBK 2005

Mạch điều khiển ngắt 8259A

13
/Chapter5


© DHBK 2005

Mạch điều khiển ngắt 8259A

14
/Chapter5


© DHBK 2005

Mạch điều khiển ngắt 8259A

15
/Chapter5


© DHBK 2005


Mạch điều khiển ngắt 8259A

16
/Chapter5


© DHBK 2005

Mạch điều khiển ngắt 8259A

17
/Chapter5


© DHBK 2005

Mạch điều khiển ngắt 8259A

18
/Chapter5


© DHBK 2005

Mạch điều khiển ngắt 8259A

19
/Chapter5



© DHBK 2005

Mạch điều khiển ngắt 8259A

20
/Chapter5


© DHBK 2005

Mạch điều khiển ngắt 8259A

21
/Chapter5


© DHBK 2005

Mạch điều khiển ngắt 8259A

22
/Chapter5


© DHBK 2005

Mạch điều khiển ngắt 8259A

23

/Chapter5


© DHBK 2005

24
/Chapter5

Các ngắt trong máy tính IBM/PC
Cascaded i8259As
INTR

IRQ0
IRQ1
IRQ2
IRQ3
IRQ4
IRQ5
IRQ6
IRQ7

Hi

IRQ8
IRQ9
IRQ10
IRQ11
IRQ12
IRQ13
IRQ14

IRQ15

Lo

INT
D0
IR0
D1
IR1
D2
IR2
D3
IR3
8259A D4
IR4
D5
IR5 Master D6
IR6
D7
IR7
INTA
SP/EN
CAS1
CAS0
CAS2

INT
D0
IR0
D1

IR1
D2
IR2
D3
IR3
D4
8259A
IR4
D5
IR5 Slave
D6
IR6
D7
IR7
INTA
SP/EN

INTA


© DHBK 2005

25
/Chapter5

Các ngắt trong máy tính IBM/PC
Priority
Highest

IRQ0

IRQ1
IRQ2
IRQ8
IRQ9
IRQ10
IRQ11
IRQ12
IRQ13
IRQ14
IRQ15

Use of PC/AT Interrupt
Timer 0
Keyboard
From slave 8259 
Real time clock
*

C0-processor
Hard disk controller

 
IRQ3
IRQ4
IRQ5
IRQ6
Lowest
IRQ7
* IRQ9 interrupt is redirected to IRQ2 vector


COM2 port
COM1 port
LPT2
Floppydisk controller
LPT1  


×