2013-05-14 28 views

Trả lời

9

BIOS sử dụng ngắt PIT (IRQ0) để theo dõi thời gian. Ngay khi bạn vào chế độ được bảo vệ, xử lý ngắt chế độ thực không còn giá trị; CPU ở chế độ được bảo vệ yêu cầu IDT chế độ bảo vệ (Bảng mô tả ngắt). Khi vào chế độ bảo vệ, giới hạn IDT trong IDTR (IDT Register) được đặt thành 0 (bất kỳ số ngắt nào làm cho CPU tạo ra ngoại lệ), vì vậy ngay sau khi PIT (hoặc bất kỳ thứ gì khác) tạo ra ngắt, CPU sẽ tạo ra một ngoại lệ, sẽ tạo một ngoại lệ khác, kích hoạt #DF (lỗi kép) và, do hậu quả, #TF (lỗi ba).

Ngoài ra, IRQ0 xảy ra ở chế độ được bảo vệ sẽ kích hoạt #DE (chia ngoại lệ) ISR (gián đoạn dịch vụ thường xuyên), vì các vectơ ngắt từ 0 đến 31 được dành riêng cho ngoại lệ trong chế độ được bảo vệ. Vì vậy, (có thể xảy ra nhất, vì các ngắt khác hơn PIT cũng có thể xảy ra) thứ tự xảy ra như thế này (lưu ý: giả định rằng ngắt PIT sẽ được kích hoạt trước, nhưng, như tôi đã nói trước đây, nó có thể về cơ bản là bất kỳ gián đoạn nào, mỗi lỗi sẽ dẫn đến lỗi #DF và triple):

  1. bit PE được đặt trong CR0.
  2. Ngắt PIT xảy ra, PIC (Bộ điều khiển ngắt lập trình) nhận tín hiệu trên chân của nó # 0.
  3. Tính năng sao chép PIC không được đặt, vì vậy nó kích hoạt IRQ0 trên CPU.
  4. IRQ0 (= #DE) cố thực hiện trình xử lý ngắt, nhưng giới hạn IDT là 0, vì vậy (IIRC) #GP (Lỗi bảo vệ chung) được tạo.
  5. Giới hạn của IDT là 0, vì vậy #DF được tạo.
  6. Giới hạn của IDT là 0, vì vậy #TF được tạo.
  7. CPU dừng hoặc khởi động lại.
+0

Cảm ơn câu trả lời tuyệt vời! –

+0

IRQ0 sẽ không kích hoạt #DE - nó sẽ kích hoạt #DF bởi vì mặc định PICQ0 của PIC được ánh xạ tới INT 8 bởi BIOS. – Ruslan

+0

@Ruslan Điều đó nghe hoàn toàn tùy ý. Bất kỳ BIOS có thể remap nó trong bất kỳ cách nào nó muốn. Ngoài ra nó không hoàn toàn có liên quan ở đây - bất kỳ vector nào khác hơn #DF hoặC#TF sẽ kích hoạt #DF, #DF sẽ kích hoạt #TF, và #TF, well ... sẽ chỉ nhảy thẳng đến 7. Btw. những gì BIOS remaps cho rằng vector cụ thể? Có bất kỳ tham chiếu nào về điều đó hay chỉ là một giá trị được tìm thấy bằng thử nghiệm? – Griwes

Các vấn đề liên quan