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

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

Đ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

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

Bài VÀO RA BẰNG NGẮT 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 ngoại vi qua cổng trạng thái Q trình thăm dị thực tuần hoàn Ưu điểm: dễ tổ chức Nhược điểm: tốn thời gian CPU Phương pháp ngắt (Interrupt) − CPU thực chương trình, khơng thăm dị trạng thái ngoại vi − Khi cần trao đổi liệu, ngoại vi gửi y/c ngắt cho CPU − CPU ngắt khỏi chương trình để phục vụ ngoại vi quay trở chương trình sau trao đổi xong a) Phương pháp hỏi vịng • Vào/ra liệu CPU thực thơng qua cổng • CPU thăm dị trạng thái sẵn sàng cổng thơng qua tín hiệu bắt tay (Handshake Signals) • Các tín hiệu thăm dò lấy từ mạch phối ghép thit k Ví dụ vào/ra thăm dò ã Sơ đồ ghép nối máy in: D0-D7 D0-D7 PC7 INTRA INTR PC6 PC3 PA0-PA7 8088 8255 STB ACK D0-D7 Máy in Chế độ 1: Ra liệu với khả b¾t tay PA PA INTEA PC PC Port A output OBFA ACKA Tõ ®iỊu khiĨn Cỉng A D D6 D D Mode Output D D D D0 víi c¸c tÝn hiƯu b¾t tay Mode I /O Port A mode Port B Output Port Port A Output PC B Mode PC , : INTRA = Input = Output Port B output Tõ tr ¹ ng th¸i INTEB A PC PC Mode Output OBFB ACKB Cæn g B D7 D6 D5 D4 D3 D2 I/O INTRA tÝn hiÖu OBFA INTA I/O INTEB bắt tay PC0 D1 D0 với INTRB WR INTEA PC ®iỊu khiĨn ë mode BSR INTEB PC ®iỊu khiĨn ë mode BSR PC , Sơ đồ đầu chế độ 8255 A WR OBF INTR ACK Output BiĨu ®å thêi gian lối chế độ OBFB INTRB Chơng trình in thông báo: Hello! I print a message Đoạn 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 ghi dieu khien LF EQU 0AH ;ky tu xuong dong CR EQU 0DH ;ky tu ve dau dong Đoạn chơng trình: MOV AL,10100000B ;tu dieu khien: PA ra, che MOV DX,CWP ;dia chi tu dieu khien OUT DX,AL ;ghi tu dieu khien MOV AL,00001101B AGAIN: OUT DX,AL ;dung che BSR MOV SI,OFFSET MY_DATA ;SI=dia chi chuoi du lieu MOV AH,[SI] ;lay tung ky tu CMP AH,”$” ;ket thuc chuoi chua? JZ ;neu roi, thoat OVER MOV DX,PC BACK: IN AL,DX AND AL,08 JZ BACK ;dia chi cong PC ;doc byte trang thai cong PC ;INTRA o muc cao khong? ;neu khong tiep tuc hoi vong MOV DX,PA ;neu co, chuyen dia chi cong MOV AL,AH ;PA vao DX (DX=300h) OUT DX,AL ;gui ky tu cua chuoi toi may in INC SI JMP AGAIN OVER: ;lap PC6=1 cho INTEa RET ;tang tro du lieu ;tiep tuc thu hien ;tro ve DOS Thăm dị trạng thái cổng máy in b) • • ã ã Vào/ra ngắt Ngt: CPU tm dng cụng việc để trao đổi liệu Sử dụng để tận dụng khả xử lý CPU cho nhiều cơng việc CPU 8088 có chân vào ngắt: NMI (không che được) INTR (che được) Mạch hỗ trợ ngắt cứng: Interrupt Controller 8259 có đầu vào ngắt Số hiệu ngắt • • • • Bộ VXL 8086/8088 có 256 ngắt: INT00 ÷INTFF Số hiệu ngắt nn: từ 00 ÷ FFh Mỗi số hiệu ngắt tương ứng 01 địa chỉ, gọi vector ngắt Vector ngắt gồm byte: – byte địa segment (để gán cho CS) – byte địa offset (để gán cho IP) Bảng vector ngắt • • Chứa địa lệnh (vector ngắt) chương trình phục vụ ngắt Nằm đầu nhớ: từ 00000 n 003FFh Từ khởi tạo 8259 máy tÝnh IBM PC/XT • ICW1: ICW1 Tỉ chøc cđa IBM PC/XT D0=1 Cần có ICW4 D1=1 Cấu hình đơn D2=0 CPU 80x86 D3=0 KÝch ph¸t sên D4=1 Do ICW1 qui định D5=D6=D7=0 máy tính 80x86 ICW1=00010011=13H Từ khởi tạo 8259 máy tính IBM PC/XT ã ICW2 = 08 (số hiệu ngắt gán cho IRQ0) Bảng 6-7 Ngắ t cứng máy tính IBM PC/XT Dạng nhịphâ n ICW2 D7 D6 D5 D4 D3 D2 D1 D0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 1 0 0 1 0 0 1 1 8259 Interrupt Input IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7 INT INT08 INT09 INT0A INT0B INT0C INT0D INT0E INT0F Từ khởi tạo 8259 máy tÝnh IBM PC/XT • ICW4: ICW4 Tỉ chøc theo IBM PC/XT D0=1 8088/86 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 đ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, OUT 21H, AL ; ghi vµo ICW2 MOV AL, OUT 21H, AL ;ghi vµo ICW4 ;so hieu ngat t¬ng øng IRQ0 ; CPU 8088, Normal EOF, buffered mode slave Trình tự thực ngắt cứng với 8259 Sau IRQ đợc kích hoạt, 8259 đặt INTR =1 để thông báo cho CPU yêu cầu ngắt CPU đặt tín hiệu S2 S1 S2=000 để xác nhận ngắt 8288 phát tín hiệu INTA=0 cho 8259 8259 nhận INTA xác định mức u tiên IRQ Chip 8288 phát INTA thứ tới 8259 8259 chuyển số hiệu ngắt lên bus liệu, byte đợc 8088/86 chốt lại 8088/86 nhân số hiệu ngắt với để xác định vị trí chơng trình phục vụ ngắt ISR 8088/86 PUSH ghi cờ vào ngăn xếp, xoá IF, TF cất ghi CS:IP vào ngăn xếp 8088/86 đọc CS:IP chơng trình phục vụ ngắt từ bảng véc tơ ngắt bắt đầu chơng trình phục vụ ngắt Phối ghép 8259 máy PC/XT Đến bus Đệm bus liệu Mạch tạo ngắt NMI Che NMI cổng A0 (D7=0) 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 8259 chủ 20h 21h Địa 8259 tớ A0h A1h (Bảng 6-8, tr 192) PC/AT bổ sung thêm ngắt IRQ8-IRQ15 Phèi ghÐp 8259 víi CPU m¸y tÝnh PC/AT Chip 8259 ë chÕ độ chủ-tớ máy tính PC/AT 286 trở lên Chơng trình khởi tạo 8259 chủ MOV AL, 11H OUT 20H, AL ; ICW1=11h MOV AL, OUT 21H, AL ;ICW2=08h MOV   AL, 04H OUT 21H, AL ;ICW3=04h MOV AL, 01H OUT 21H, AL ;ICW4=01h Chơng trình khởi tạo 8259 tớ ; Khởi tạo điều khiển ngắt 8259 thø 2: MOV AL, 11H ;ICW1 OUT A0H, AL MOV AL, 70H OUT A1H, AL MOV AL, 02H;ICW3 OUT A1H, AL MOV AL, 01H OUT A1H, AL ;ICW2 ;ICW4 C¸c ngắt cứng 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 IRQ Sè hiƯu ng¾ t Sư dơng IRQ0 INT 08 Châ n OUT0 đ ịnh thời 8254 IRQ1 INT 09H Bàn phím IRQ2 INT 0AH Ngắ t từ 8259 thø 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 Cht PS/2 IRQ13 INT 75H § ång xư lý toán IRQ14 INT 76H Đ ĩa cứng IRQ15 INT 77H Khả dụng Ví dụ lập trình ngắt cứng cho máy PC/XT Giả sử dùng ngắt cứng IR2 sơ đồ phối ghép 8259 máy PC/XT Bình th ờng máy tính thực công việc đó, có ngắt kích hoạt vào đầu IR2, máy tính phải đọc 100 bytes liệu từ cổng 70h, nhân đôi liệu gửi cổng 71h Giải: Chơng trình Model small ; (Khi khởi động máy tính, 8259 đà đợc khởi tạo với ICW1=1Bh, Stack 100 ; ICW2=50h, ICW4=0Dh) Code Main PROC MOV AX,0 MOV ; khởi tạo ES ES,AX CLI ; cấm ngắt để ghi địa 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 chơng trình ; 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 chơng trình MOV INT Main AH,4CH 21h ENDP ; trở DOS Chơng trình phục vụ ngắt PhucvuIRQ2 PROC PUSH AX ; cÊt c¸c ghi PUSH CX TIEP: MOV CL,100 ; số byte phải thao tác IN AL,70H ; đọc byte SHL AL,1 ; nhân đôi OUT 71h,AL ; ®a cỉng LOOP TIEP PhucvuIRQ2 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ở chơng trình ENDP END Main ... dơng VÝ dơ lËp trình ngắt cứng cho máy PC/XT Giả sử dùng ngắt cứng IR2 sơ đồ phối ghép 8259 máy PC/XT Bình th ờng máy tính thực công việc đó, có ngắt kích hoạt vào đầu IR2, máy tính phải đọc 100... trình: -G NGẮT TRONG MÁY TÍNH IBM PC • Ngắt cứng: phát sinh từ mạch ngoại vi Ví dụ: INT 9h (ngắt từ bàn phím), INT 0Bh (ngắt từ COM2), • Ngắt mềm: kích hoạt lệnh phần mềm Ví dụ: INT 21h (ngắt DOS),... Thăm dò trạng thái cổng máy in b) ã ã ã ã Vào/ ra ngắt Ngt: CPU tm dừng công việc để trao đổi liệu Sử dụng để tận dụng khả xử lý CPU cho nhiều cơng việc CPU 8088 có chân vào ngắt: NMI (không che

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

Mục lục

    1. CC PHNG PHP VO/RA

    Phng phỏp hi vũng

    Ví dụ vào/ra bằng thăm dò

    Chương trình in thông báo: Hello! I print a message

    Vào/ra bằng ngắt

    Xem bng vector ngt bng Debug

    Chng trỡnh con phc v ngt (ISR-Interrupt Service Rountine)

    Chy chng trỡnh ISR

    2. NGT TRONG MY TNH IBM PC

    Ngắt và thanh ghi cờ

Tài liệu cùng người dùng

Tài liệu liên quan