Trắc nghiệm, bài giảng pptx các môn chuyên ngành Y dược và các ngành khác hay nhất có tại “tài liệu ngành Y dược hay nhất”; https://123doc.net/users/home/user_home.php?use_id=7046916. Slide bài giảng môn cấu trúc máy tính ppt dành cho sinh viên chuyên ngành công nghệ - kỹ thuật và các ngành khác. Trong bộ sưu tập có trắc nghiệm kèm đáp án chi tiết các môn, giúp sinh viên tự ôn tập và học tập tốt môn cấu trúc máy tính bậc cao đẳng đại học chuyên ngành công nghệ - kỹ thuật và các ngành khác
Trang 1Bài 9
VÀO RA BẰNG NGẮT
Trang 21 CÁC PHƯƠNG PHÁP VÀO/RA
• Phương pháp hỏi vòng (Polling)
– CPU thăm dò trạng thái của ngoại vi qua cổng trạng thái
– Quá trình thăm dò được thực hiện tuần hoàn
– Ưu điểm: dễ tổ chức
– Nhược điểm: tốn thời gian của CPU
• Phương pháp ngắt (Interrupt)
− CPU thực hiện chương trình, không thăm dò trạng thái ngoại vi
− Khi cần trao đổi dữ liệu, ngoại vi gửi y/c ngắt cho CPU
− CPU ngắt khỏi chương trình chính để phục vụ ngoại vi và quay trở về chương trình chính sau khi trao đổi xong
Trang 3a) Phương pháp hỏi vòng
• Vào/ra dữ liệu được CPU thực hiện thông qua các cổng.
• CPU thăm dò trạng thái sẵn sàng của cổng thông qua các tín hiệu bắt tay
(Handshake Signals).
• Các tín hiệu thăm dò lấy từ các mạch phối ghép được thiết kế.
Trang 4PC7 PC6 PA0-PA7 PC3
INTRA
Máy in
Trang 5Chế độ 1: Ra dữ liệu với khả năng bắt tay
Port A output OBFA ACKA
INTRA
Cổng A với các tín hiệu bắt tay
OBFB ACKB
INTRB
Cổn g B với các tín hiệu bắt tay
D 7 D 6 D 5 D 4 D 4 D 2 D 1 D 0
Port B Output Port B Mode 1
OBFA INTA INTRA INTEB OBFB INTRB
Mode I / O Port A mode 1 Port A Output
Port B output
PA 7
PA 0 INTEA
Trang 6Ch ¬ng tr×nh in th«ng b¸o: “Hello! I print a message”
§o¹n d÷ liÖu:
MY_DATA DB “Hello! I print a message?”,”$”
PA EQU 300H ;dia chi cong PA
PB EQU 301H ;dia chi cong PB
PC EQU 302H ;dia chi cong PC
CWP EQU 303H ;dia chi thanh ghi dieu khien
LF EQU 0AH ;ky tu xuong dong
CR EQU 0DH ;ky tu ve dau dong
Trang 7§o¹n ch ¬ng tr×nh:
MOV AL,10100000B ;tu dieu khien: PA ra, che do 1
MOV AL,00001101B ;lap PC6=1 cho INTEa
MOV SI,OFFSET MY_DATA ;SI=dia chi chuoi du lieu
JZ OVER ;neu roi, thoat ra
JZ BACK ;neu khong tiep tuc hoi vong
Thăm dò trạng thái cổng máy in
Trang 8b) Vµo/ra b»ng ng¾t
• Ngắt: CPU tạm dừng công việc hiện tại để trao đổi dữ liệu.
• Sử dụng để tận dụng khả năng xử lý của CPU cho nhiều công việc
• CPU 8088 có 2 chân vào ngắt: NMI (không che được) và INTR (che được).
• Mạch hỗ trợ ngắt cứng: Interrupt Controller 8259 có 8 đầu vào ngắt.
Trang 9– 2 byte địa chỉ segment (để gán cho CS)
– 2 byte địa chỉ offset (để gán cho IP)
Trang 10Bảng vector ngắt
• Chứa các địa chỉ lệnh đầu tiên (vector ngắt) của chương trình con phục vụ ngắt.
Trang 11Xem bảng vector ngắt bằng Debug
Ô nhớ chứa vector ngắt INTnn có địa chỉ: nn x 4
Ví dụ: địa chỉ ngắt INT0 là: 00A7:1068
INT1 là: 0070:018B INT2 là: 03A0:0016
…
INT0F là: 020E:03FF
Trang 12Chương trình con phục vụ ngắt (ISR-Interrupt Service Rountine)
• Mỗi ngắt có 01 chương trình con ISR.
• Mỗi ISR có địa chỉ CS:IP của lệnh đầu lưu trong Bảng vector ngắt.
• Khi ngắt được kích hoạt chương trình ISR được gọi để phục vụ ngắt.
• Khi bị ngắt, CPU cất CS:IP hiện thời vào Stack rồi gán cho CS:IP giá trị lấy từ Bảng vector ngắt
Trang 13Chạy chương trình ISR
INT 12 ;Lấy dung lượng RAM vào AX
INT 3 ;Dừng CPU
Trang 142 NGẮT TRONG MÁY TÍNH IBM PC
Ví dụ: INT 9h (ngắt từ bàn phím), INT 0Bh (ngắt từ COM2),
Ví dụ: INT 21h (ngắt của DOS), INT 10h (ngắt của BIOS, phục vụ Video),
– INT 00: phép chia cho 0 (Divide by 0)
– INT 01: chạy từng lệnh (Trap mode: cờ TF=1).
– INT 02: ngắt không che được (input NMI=1).
– INT 03: điểm dừng (Halt).
– INT 04: tràn số có dấu (cờ Over Flow OF=1)
Trang 15Ngắt và thanh ghi cờ
Cờ ngắt IF đ ợc dùng để che ngắt cứng tới chân INTR:
• Nếu IF=0 các ngắt cứng qua chân INTR đều bị cấm
• Nếu IF=1 các ngắt cứng qua chân INTR cho phép.
• Lệnh xoá cờ ngắt CLI sẽ đặt IF=0 Lệnh lập cờ ngắt STI (set interrupt flag) dùng để đặt IF=1
Thanh ghi cờ 16 bit
R R R R OF DF IF TF SF ZF U AF U PF U CF
R = dự trữ (reserved) SF = cờ dấu (sign flag)
U = ch a xác định (undefined) ZF = cờ không (zero flag)
OF = cờ tràn (overflow flag) AF = cờ nhớ phụ (auxiliary carry flag)
DF = cờ h ớ ng (direction flag) PF = cờ chẵn lẻ (parity flag)
IF = cờ ngắt (interrupt flag) CF = cờ nhớ (carry flag)
TF = cờ bẫy (trap flag) Hình 11.2 Thanh ghi cờ
Trang 16Quá trình thực hiện một ngắt
1. Cất thanh ghi cờ (FR) vào ngăn xếp và giảm SP đi 2
2. Xoá hai cờ cho phép ngắt IF và cờ bẫy TF (IF=0 và TF=0) Tuỳ thuộc vào thủ
tục ngắt mà có thể huỷ che chân INTR bằng lệnh STI
3. Cất CS hiện hành vào ngăn xếp và giảm SP đi 2
4. Cất IP hiện hành vào ngăn xếp và giảm SP đi 2
5. Nhân số hiệu INT với 4 để xác định địa chỉ vật lý của ngắt trong bảng vec
tơ ngắt, qua đó có đ ợc CS và IP của ch ơng trình con phục vụ ngắt ISR
6. Với CS:IP mới, CPU bắt đầu nhận và thực hiện các lệnh của ch ơng trình con
phục vụ ngắt ISR
7. Lệnh cuối cùng của ISR là lệnh IRET Lệnh này thông báo để CPU tải lại giá trị
IP, CS và FR từ ngăn xếp và nhờ vậy CPU có thể chạy tiếp ch ơng trình tại nơi
nó đã bị ngắt
Trang 173.Mạch điều khiển ngắt khả trình 8259
Chức năng: hỗ trợ ngắt cứng, mở rộng số ngắt cứng cho CPU, sắp xếp thứ tự u tiên.
Sơ đồ khối: Link
Thành phần:
• 4 từ khởi tạo ICW1-ICW4
• 3 từ điều khiển hoạt động OCW1-OCW3
Trang 18IR0 - IR7
Bộ đệm dữ liệu
Khối logic (đọc ghi)
Bộ đệm cascad Các yêu cầu ngắt
Trang 19Hì nh 2.24 Bộ điều khiển ngắt lập trì nh 8259A
Vcc A0 INTA IR7 IR6 IR5 IR4 IR3 IR2 IR1 IR0 INT
SP / EN CAS 2
D0-D7
RD
WR
CS A0 INT INTA
CS0 - CS2 SP/EN
Ghi chú:
SP/EN : Slave Program Enable Buffer D0-D7 : Bus dữ liệu 2 chiều
IRR : Interrupt Request CAS : Cascad
IMR : Thanh ghi mặt nạ để che hay không che ngắt ISR : L u ngắt đ ợ c phục vụ
Trang 20§Þa chØ cña ICW vµ OCW
Trang 21Ví dụ tìm địa chỉ ICW, OCW
Trang 22Các từ khởi tạo 8259 ICW1-ICW2
T7-T0 là ngắt gán cho IR0 của 8259
1 - 8080/85 0- 80x86
1= cần ICW4 (80x86) 0=không cần ICW4 (CPU 8bit) 1= chế độ đơn
Trang 23C¸c tõ khëi t¹o 8259 ICW3-ICW4
0 Xnonbuffered mode
1 0buffered mode slave
1 1buffered mode master
1= for x86 0= for 8085 1= Auto EOI 0=Normal EOI
1 0 0 0 SFNM BUF MS AEOI PM
A0 D7 D6 D5 D4 D3 D2 D1 D0
1=spec fully nested mode
0=not spec fully nested mode
Trang 24Chức năng của các ICW1-ICW4
• ICW1: chọn vi xử lý, kiểu kích hoạt của các IR, 8259 đơn hay
nối tầng.
• ICW2: chọn số hiệu ngắt cho IR0-IR7.
• ICW3: chỉ dùng trong chế độ nối tầng.
– ICW3 (chủ): xác định IR nào nối với 8259 tớ.
– ICW3 (tớ): ID của IR nào của 8259 chủ.
• ICW4: chọn chế độ u tiên, EOI.
Trang 25Ví dụ 3:
kích phát mức, đơn và IR0 đ ợ c gán "INT 50H" 8259 ở chế độ đệm tớ vớ i kết thúc ngắt (EOI) bì nh th ờng
Chú ý: Ví dụ này chủ yếu để làm bài tập, chứ không để cập tớ i máy tính
D4=1 do ICW1 yêu cầu
D5=D6=D7=0 luôn bằng 0 đối vớ i tr ờng hợ p 80x86
Nh vậy ICW1 = 00011011 = 1BH Đ ể xác định ICW2, cần xem Bảng 6-4 ICW2 luôn bằng INT # INT # đ ợ c gán giá trị của IR0 Do đó ICW2 = 01010000 = 50H L u ý rằng "INTnn" đ ợ c gán cho IR0 phải có ba bít thấp bằng 000; vì thế
nó có thể nhận giá trị X0H hoặc X8H, ở đâ y X là một số Hexa Ví dụ INT 45H không thể gán cho IR0 đ ợ c.
Trang 26ICW3 kh«ng ® î c sö dông vµ kh«ng ® î c nèi tÇng ICW4
Trang 27B¶ng 6-4 Sè hiÖu c¸c ng¾t cøng ë VÝ dô 3
D¹ng nhÞ ph©n cña ICW2 D7 D6 D5 D4 D3 D2 D1 D0
8259 Interrupt Input INT
Trang 28Các từ điều khiển hoạt động 8259 OCW1-ICW3
Mặt nạ ngắt 1=Đặt mặt nạ 0=Xoá mặt nạ
1 M7 M6 M5 M4 M3 M2 M1 M0
A0 D7 D6 D5 D4 D3 D2 D1 D0 OCW1
Hình 6-7 Khuôn dạng OCW đối với 8259
ẫM hoá mức IR đ ợc kích hoạt
Đổi mức u tiên khi EOI th ờng 101 Lập chế độ quay khi EOI tự động 100 Xoá chế độ quay khi EOI tự động 000
Đổi mức u tiên khi EOI đích danh 111
Lệnh lập mức u tiên 110 Không có thao tác 010
0 R SL EOI 0 0 L2 L1 L0
A0 D7 D6 D5 D4 D3 D2 D1 D0
OCW3
Trang 29Chức năng các OCW1- OCW1
• OCW1: ghi các bit mặt nạ vào thanh ghi IMR.
• OCW2: chọn cách thức kết thúc yêu cầu ngắt.
• OCW3: cho phép:
– chọn thanh ghi để đọc.
– thăm dò trạng thái yêu cầu ngắt.
– lập/xoá chế độ mặt nạ đặc biệt.
Trang 32Tõ khëi t¹o cña 8259 ë m¸y tÝnh IBM PC/XT
Trang 33Tõ khëi t¹o cña 8259 ë m¸y tÝnh IBM PC/XT
B¶ng 6-7 Ng¾t cøng cña m¸y tÝnh IBM PC/XT
D¹ng nhÞ ph©n cña ICW2 D7 D6 D5 D4 D3 D2 D1 D0
8259 Interrupt Input INT
Trang 34Tõ khëi t¹o cña 8259 ë m¸y tÝnh IBM PC/XT
ICW4 Tæ chøc theo IBM PC/XT
D1=0 Normal EOI (EOI tr íc IRET)
D2=0, D3=1 buffered mode slave
D4=0 not spec fully nested mode
D5=D6=D7=0 ICW4 yªu cÇu
ICW4=00001001=09H
Trang 35đoạn ch ơng trình khởi tạo 8259 nh sau:
MOV AL, 13H ;chế độ đơn, kích phát mức, cần ICW4
OUT 20H, AL ;ghi vào ICW1
MOV AL, 8 ;so hieu ngat t ơng ứng IRQ0
OUT 21H, AL ; ghi vào ICW2
MOV AL, 9 ; CPU 8088, Normal EOF, buffered mode slave
OUT 21H, AL ;ghi vào ICW4
Trang 36Tr×nh tù thùc hiÖn ng¾t cøng víi 8259
ng¾t.
phôc vô ng¾t ISR
ng¨n xÕp.
b¾t ®Çu ch ¬ng tr×nh con phôc vô ng¾t.
Trang 37Phèi ghÐp 8259 trong m¸y PC/XT
Đệm bus
Đến bus
dữ liệu
Trang 38Mạch tạo ngắt NMI
Che NMI bằng cổng A0 (D7=0)
Trang 395 NGẮT TRONG MÁY TÍNH PC/AT
• PC/AT dùng VXL 286 trở lên
• Bổ sung thêm 01 8259 (Slave)
• Địa chỉ 8259 chủ vẫn là 20h và 21h
• Địa chỉ 8259 tớ là A0h và A1h (Bảng 6-8, tr 192)
Trang 40Phối ghép 8259 với CPU trong máy tính PC/AT
Chip 8259 ở chế độ chủ-tớ trong máy tính PC/AT 286 trở
lên.
Trang 42Ch ¬ng tr×nh khëi t¹o 8259 tí
; Khëi t¹o bé ®iÒu khiÓn ng¾t 8259 thø 2:
Trang 43Các ngắt cứng của máy IBM PC/AT
Bảng 6-9 Bố trí các ngắt cứng ở máy tính PC dù ng bus ISA
IRQ0 INT 08 Chân OUT0 bộ định thời 8254 IRQ1 INT 09H Bàn phím
IRQ2 INT 0AH Ngắt từ 8259 thứ 2 IRQ3 INT 0BH Cổng COM2 (COM4) IRQ4 INT 0CH Cổng COM1 (COM3) IRQ5 INT 0DH Cổng song song LPT2 IRQ6 INT 0EH Bộ điều khiển đĩa mềm IRQ7 INT 0FH Cổng song song LPT1 IRQ8 INT 70H Đ ồng hồ thời gian thực IRQ9 INT 71H Phần mềm đ ợ c định địa chỉ lại theo INT0AH IRQ10 INT 72H Khả dụng
IRQ11 INT 73H Khả dụng IRQ12 INT 74H Chuột PS/2 IRQ13 INT 75H Đ ồng xử lý toán IRQ14 INT 76H Đ ĩa cứng
IRQ15 INT 77H Khả dụng
Trang 44Ví dụ lập trình một ngắt cứng cho máy PC/XT
Giả sử dùng ngắt cứng IR2 trong sơ đồ phối ghép 8259 của máy PC/XT Bình th ờng máy tính thực hiện một công việc nào đó, khi có ngắt kích hoạt vào đầu IR2, máy tính phải đọc 100 bytes dữ liệu từ cổng 70h, nhân đôi mỗi dữ liệu rồi gửi ra cổng 71h.
Trang 45CLI ; cấm ngắt để ghi địa chỉ
MOV WORD PTR ES:002AH,SEG PhucvuIRQ2
MOV WORD PTR ES:0028H,OFFSET PhucvuIRQ2
STI ; cho phép ngắt trở lại
; bắt đầu công việc của ch ơng trình chính
; trong khi thực hiện công việc có thể ngắt IRQ2 kích hoạt ; kết thúc công việc của ch ơng trình
MOV AH,4CH ; trở về DOS
INT 21h
Main ENDP
Trang 46Ch ơng trình con phục vụ ngắt
MOV AL,20h ;OCW2 với EOI để kết thúc ngắt OUT 20h,AL ; ghi OCW2 đến 8259
POP CX POP AX STI ; cho phép ngắt trở lại IRET ; trở về ch ơng trình chính PhucvuIRQ2 ENDP
END Main