30天自製作業系統 第7天 FIFO與滑鼠控制

2021-10-02 07:49:21 字數 473 閱讀 1826

今天前半部分講的都是鍵盤輸出與緩衝區的問題,後半部分才是滑鼠移動問題。

緩衝區fifo實現

在按鍵盤上乙個鍵時,鍵盤會以中斷形式傳送給cpu資料。在現階段的設計中,一次只傳送一位元組,但是在按一些鍵時,會傳送兩位位元組,此時另一位元組如果不暫存,就丟失了;在有些情況,會碰到鍵盤中斷傳送的資料不能馬上被cpu使用,此時就要用到緩衝區。

緩衝區用來快取暫未處理的資料,比如快取上面的另乙個位元組。在緩衝區輸出前,需要先關中斷,防止其他中斷打斷緩衝區處理,否則會丟失資料;處理完緩衝區後,再開中斷。

問題在於,如果緩衝區順序儲存,那麼不論多大,總會有恰巧用完的時候,此時就需要重新從頭開始,會影響效能;那麼在用到頭時,就重新設定緩衝區從頭開始訪問即可,像乙個迴圈佇列,但並不是迴圈佇列。

滑鼠控制

其實今天做不到讓滑鼠移動,但能做到移動滑鼠後,讓滑鼠的資料傳到cpu,並顯示在螢幕上。大致原理上面已經說了,移動會產生輸入資料,每個資料三位元組,需設定緩衝區存放。

《30天自製作業系統》第4天

1.c語言與畫面顯示的練習 彙編與c 語言結合時能自由使用的寄存區只有 eax,ecx,edx3 個,其他寄存區用於記憶非常重要的值,只能讀不能寫。intel系列 cpu 8086 80186 286 386 486 pentium pentiumpro pentium2 pentium3 pent...

《30天自製作業系統》第6天

1.pic 可程式設計中斷控制器 pic 連線 8個中斷訊號,監視輸入管腳的 8個中斷訊號。主 pic irq0 irq7 irq2 連線到從 pic irq8 irq15 中斷發生後,cpu 命令pic傳送2 個位元組的資料,格式是 0xcd 0 cpu收到2 個位元組後把資料當做指令來執行。0x...

30天自製作業系統 第3天

cf 進製標誌,1位暫存器 jc 若進製標誌是1,則跳轉 int 0x13 呼叫磁碟bios ah 0x00 系統復位 0x02 讀盤 0x03 寫盤 0x04 校驗 0x0c 尋道 al 處理物件的扇區數 ch 柱面號 0xff cl 扇區號 0 5位 柱面號 0x300 2 dh 磁頭號 dl ...