第 8 章
description
Transcript of 第 8 章
第 8 章
中斷 (Interrupt) 的原理
本章提要
Interrupt 中斷 Interrupt 的原理 自己寫一個 int 服務程式 更改中斷服務程式 PC 鍵盤的工作原理 各種按鍵組合
80x86 的中斷機能
Interrupt 的來源
Interrupt 的原理
80x86 是以編號來指定服務程式的 , 例如 int 21h 就是指定 80x86 暫停 ( 中斷 ) 目前工作而去執行第 21h 號服務程式。
80x86 的中斷指令格式如下:
中斷向量表
DEBUG 的 T 命令
DEBUG 的 T 命令
int 服務程式 ISR 的寫法
實驗與觀察
DOS 的 25H 功能呼叫
DOS 的 35H 功能呼叫
中斷向量程式例
中斷向量程式例
中斷向量程式例
更改中斷服務程式
更改中斷服務程式
PC 鍵盤的工作原理
8042 與掃瞄碼 鍵盤與主機的溝通 reset 讀鍵線路 對 8259A 送 EOI 訊號
8042 與掃瞄碼
8042 與掃瞄碼
8042 與掃瞄碼
8042 與掃瞄碼
8042 與掃瞄碼
8042 與掃瞄碼
鍵盤與主機的溝通
鍵盤與主機的溝通
reset 讀鍵線路
由 60h 的 port_A 讀走字鍵後 , 必須把主機的讀鍵硬體線路 Reset, 這樣主機才能再讀取下一個鍵 , 此段動作的 BIOS 碼為:
對 8259A 送 EOI 訊號
所有硬體中斷都經由 8259A 處理 , 當中斷結束時 , 必須對 8259A 送出一個中斷結束 (EOI) 訊號:
鍵盤緩衝區
擴大鍵盤緩衝區
緩衝區的構造
以所謂的:圓型貯列 (circular queue) 組織成的:
緩衝區的構造
Circular queue
Circular queue
int 16h BIOS 中斷
PC 的 BIOS 提供了 int 16h 中斷來讀 buffer 內的字鍵。整個 keyboard 的 I/O 過程是:
鍵盤的擴展碼
鍵盤的擴展碼
鍵盤的擴展碼
特殊控制鍵
特殊控制鍵
特殊控制鍵