使用BIOS进行键盘输入和磁盘读写---汇编学习笔记
匯編筆記
- 使用BIOS進行鍵盤輸入和磁盤讀寫
- 17.1 int 9中斷例程對鍵盤輸入的處理
- 17.2 使用int 16h中斷例程讀取鍵盤緩沖區
- 17.3 字符串的輸入
- 17.4 應用int 13h中斷例程對磁盤進行讀寫
- 實驗17 編寫包含多個功能子程序的中斷例程
使用BIOS進行鍵盤輸入和磁盤讀寫
大多數有用的程序都需要處理用戶的輸入,鍵盤輸入是最基本的輸入。程序和數據通常需要長期存儲,磁盤是最常用的存儲設備。BIOS為這兩種外設的I/O提供了最基本的中斷例程。
17.1 int 9中斷例程對鍵盤輸入的處理
鍵盤緩沖區的一個概念,很簡單。按下shift鍵的同時按下字母鍵會改變大小寫,改變的是編碼!如下:a的變化
第一個是在沒有按下shift的情況下,按下A鍵,編碼將是小寫的“a”;而第二個是在按下shift的情況下,按下A鍵,編碼將是大寫的“A”。
17.2 使用int 16h中斷例程讀取鍵盤緩沖區
BIOS提供了int 16h中斷例程供程序員調用。int 16h中斷例程中包含一個最重要的功能是從鍵盤緩沖區中讀取一個鍵盤輸入,該功能的編號為0。
下面的指令從鍵盤緩沖區中讀取一個鍵盤輸入,并且將其從緩沖區中刪除:
mov ah,0 int 16h結果:(ah)=掃描碼,(al)=ASCII碼。
可以閱讀書籍,查看詳細內容。
int 16h中斷例程的0號功能,進行如下的工作。
可見,BIOS的int 9中斷例程和int 16h中斷例程是一堆互相配合的程序。
檢測點 17.1
“在int 16h中斷例程中,一定有設置IF=1的指令。”這種說法對嗎?
錯誤,當鍵盤緩沖區為空時,如果設置IF=1,int 9中斷無法執行。
17.3 字符串的輸入
寫出重要內容吧,其他略過略過。
字符串顯示過程如下:
17.4 應用int 13h中斷例程對磁盤進行讀寫
3.5英寸軟盤分為上下兩面,每面有80個磁道,每個磁道又分為18個扇區,每個扇區的大小為512個字節。
則:2面?80磁道?18扇區?512字節=1440KB2面*80磁道*18扇區*512字節=1440KB2面?80磁道?18扇區?512字節=1440KB
在讀寫扇區的時候,要給出面號、磁道號和扇區號。面號和磁道號從0開始,而扇區號從1開始。
入口參數:
對于驅動器號:
返回參數:
實驗17 編寫包含多個功能子程序的中斷例程
略過
本書完,最后3章可能沒有什么耐心看了,不過內容的很簡單。實驗和課程設計還有綜合研究以后有時間必定補上,后面將學習操作系統。
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的使用BIOS进行键盘输入和磁盘读写---汇编学习笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 她是如何从传统金融行业转行产品经理的?
- 下一篇: BugkuCTF解题报告---WEB