1. Trang chủ
  2. » Giáo Dục - Đào Tạo

VÀO RA BẰNG NGẮT (cấu TRÚC máy TÍNH SLIDE)

46 19 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 46
Dung lượng 552,94 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 1

Bài 9

VÀO RA BẰNG NGẮT

Trang 2

1 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 3

a) 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 4

PC7 PC6 PA0-PA7 PC3

INTRA

Máy in

Trang 5

Chế độ 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 6

Ch ¬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 8

b) 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 10

Bả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 11

Xem 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 12

Chươ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 13

Chạy chương trình ISR

INT 12 ;Lấy dung lượng RAM vào AX

INT 3 ;Dừng CPU

Trang 14

2 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 15

Ngắ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 16

Quá 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 17

3.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 18

IR0 - IR7

Bộ đệm dữ liệu

Khối logic (đọc ghi)

Bộ đệm cascad Các yêu cầu ngắt

Trang 19

Hì 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 21

Ví dụ tìm địa chỉ ICW, OCW

Trang 22

Cá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 23

C¸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 24

Chứ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 25

Ví 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 26

ICW3 kh«ng ® î c sö dông vµ kh«ng ® î c nèi tÇng ICW4

Trang 27

B¶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 28

Cá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 29

Chứ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 32

Tõ khëi t¹o cña 8259 ë m¸y tÝnh IBM PC/XT

Trang 33

Tõ 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 34

Tõ 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 36

Tr×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 37

Phèi ghÐp 8259 trong m¸y PC/XT

Đệm bus

Đến bus

dữ liệu

Trang 38

Mạch tạo ngắt NMI

Che NMI bằng cổng A0 (D7=0)

Trang 39

5 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 40

Phố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 42

Ch ¬ng tr×nh khëi t¹o 8259 tí

; Khëi t¹o bé ®iÒu khiÓn ng¾t 8259 thø 2:

Trang 43

Cá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 44

Ví 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 45

CLI ; 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 46

Ch ơ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

Ngày đăng: 22/03/2021, 17:01

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm