网站大量收购闲置独家精品文档,联系QQ:2885784924

使用BIOS进行键盘输入和磁盘读写课件.pptVIP

使用BIOS进行键盘输入和磁盘读写课件.ppt

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  1. 1、本文档共10页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

17.4應用int13h中斷例程對磁片進行讀寫如果我們通過直接控制磁片控制器來訪問磁片,則需要涉及許多硬體細節。BIOS提供了對扇區進行讀寫的中斷例程,這些中斷例程完成了許多複雜的和硬體相關的工作。我們可以通過調用BIOS中斷例程來訪問磁片。使用BIOS進行鍵盤輸入和磁片讀寫引言大多數有用的程式都需要處理用戶的輸入,鍵盤輸入是最基本的輸入。程式和數據通常需要長期存儲,磁片是最常用的存儲設備。BIOS為這兩種外設的I/O提供了最基本的中斷例程,在本章中,我們對它們的應用和相關的問題進行討論。17.1int9中斷例程對鍵盤輸入的處理我們已經講過,鍵盤輸入將引發9號中斷,BIOS提供了int9中斷例程。CPU在9號中斷發生後,執行int9中斷例程,從60h端口讀出掃描碼,並將其轉化為相應的ASCII碼或狀態資訊,存儲在內存的指定空間(鍵盤緩衝區或狀態位元組)中。17.1int9中斷例程對鍵盤輸入的處理一般的鍵盤輸入,在CPU執行完int9中斷例程後,都放到了鍵盤緩衝區中。鍵盤緩衝區中有16個字單元,可以存儲15個按鍵的掃描碼和對應的入ASCII碼。17.1int9中斷例程對鍵盤輸入的處理下麵我們按照鍵盤緩衝區的邏輯結構,來看一下鍵盤輸入的掃描碼和對應ASCII碼是如何寫入鍵盤緩衝區的。注意17.1int9中斷例程對鍵盤輸入的處理注意:在我們的課程中,僅在邏輯結構的基礎上,討論BIOS鍵盤緩衝區的讀寫問題。其實鍵盤緩衝區是用環形佇列結構管理的記憶體區,但我們不對佇列和環形佇列的實現進行討論,因為那是另一門專業課《數據結構》的內容。17.1int9中斷例程對鍵盤輸入的處理下麵,我們通過下麵幾個鍵:A、B、C、D、E、shift_A、A的輸入過程,簡要地看一下int9中斷例程對鍵盤輸入的處理方法:處理鍵盤輸入演示17.2使用int16h中斷例程讀取鍵盤緩衝區BIOS提供了int16h中斷例程供程式員調用。int16h中斷例程中包含的一個最重要的功能是從鍵盤緩衝區中讀取一個鍵盤輸入,該功能的編號為0。17.2使用int16h中斷例程讀取鍵盤緩衝區下麵的指令從鍵盤緩衝區中讀取一個鍵盤輸入,並且將其從緩衝區中刪除:movah,0

int16h結果:(ah)=掃描碼,(al)=ASCII碼。

17.2使用int16h中斷例程讀取鍵盤緩衝區下麵,我們接著上一節中的鍵盤輸入過程,看一下int16h如何讀取鍵盤緩衝區。

int16h讀鍵盤緩衝區演示17.2使用int16h中斷例程讀取鍵盤緩衝區從上面我們可以看出,int16h中斷例程的0號功能,進行如下的工作:(1)檢測鍵盤緩衝區中是否有數據;(2)沒有則繼續做第1步;(3)讀取緩衝區第一個字單元中的鍵盤輸入;(4)將讀取的掃描碼送入ah,ASCII碼送入al;(5)將己讀取的鍵盤輸入從緩衝區中刪除。

17.2使用int16h中斷例程讀取鍵盤緩衝區可見,B1OS的int9中斷例程和int16h中斷例程是一對相互配合的程式,int9中斷例程向鍵盤緩衝區中寫入,int16h中斷例程從緩衝區中讀出。它們寫入和讀出的時機不同,int9中斷例程在有鍵按下的時候向鍵盤緩衝區中寫入數據;而int16h中斷例程是在應用程式對其進行調用的時候,將數據從鍵盤緩衝區中讀出。

17.2使用int16h中斷例程讀取鍵盤緩衝區我們在編寫一般的處理鍵盤輸入的程式的時候,可以調用int16h從鍵盤緩衝區中讀取鍵盤的輸入。編程,接收用戶的鍵盤輸入,輸入“r”,將螢幕上的字元設置為紅色:輸入“g”,將螢幕上的字元設置為綠色;輸入“b”,將螢幕上的字元設置為藍色。程式源碼特別提示檢測點17.1(page294)沒有通過此檢測點,請不要向下進行!17.3字串的輸入用戶通過鍵盤輸入的通常不僅僅是單個字元而是字串。下麵我們討論字串輸入中的問題和簡單的解決方法。17.3字串的輸入最基本的字串輸入程式,需要具備下麵的功能:(1)在輸入的同時需要顯示這個字串;(2)一般在輸入回車符後,字串輸入結束;(3)能夠刪除已經輸入的字元。對於這三個功能,我們可以想像在DOS中,輸入命令行時的情況。17.3字串的輸入編寫一個接收字串的輸入副程式,實現上面三個基本功能。因為在輸入的過程中需要顯示,副程式的參數如下:(dh)、(dl)=字串在螢幕上顯示的行、列位置;ds:si

文档评论(0)

子不语 + 关注
官方认证
服务提供商

平安喜乐网络服务,专业制作各类课件,总结,范文等文档,在能力范围内尽量做到有求必应,感谢

认证主体菏泽喜乐网络科技有限公司
IP属地未知
统一社会信用代码/组织机构代码
91371726MA7HJ4DL48

1亿VIP精品文档

相关文档