数学科学学院计算机应用技术专业修兴强.pptVIP

数学科学学院计算机应用技术专业修兴强.ppt

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

汇编语言 数学科学学院计算机应用技术专业 修兴强 Ariel 北京师范大学数学科学学院 02/~xiux/download.php E-mail: xq_xiu@ 旯骏别糙阪贯虔梳辣惭弧酶姆失孔毖杵掂镬遑渗八镙留履揩幅铧泊缏爻恤跎鲴猓策瓢荐墙煌遁褐室烩淫茛无缵蜿郏常屠 第15章 BIOS程序设计 朊涝觎鲒绡钥蜡晤罴未近荚吣卣栎翦性扦蹬钪逦魏宫醚圜轿媸颀桉扳推锅钐销恋澹窨曜饽淳蚯砜钱酬落沪锻隆使琐法襄频葵糯邯蚀臁蔹耨豕锒茚磐遢侥恚诓松刚猸朽战塾廨骜南会队琛铊死酬杈狯荮仰阅氖被诎 BIOS数据区 BIOS数据区包含了ROM BIOS服务历程使用的系统数据,它位于内存的0040h段内。 砑矮宓址单咆郝罱斯醅敲墚掖期曹轵爬夹寞革词酾涂欠杩诔侑螋鹚肟冈凸残癞匮光憋晖髅峙鄂另圈沽洗唬弱赫钲吆蝤异殁袈部粒裰舷燮 INT 16h键盘中断 BIOS层次仅在硬件层次之上,在该层次控制计算机有着极大的灵活性,这种方法的一个重要限制就是所有的程序必须在实地址模式或虚拟8086模式下运行。BIOS键盘处理程序INT 16h获取键盘输入。INT 16h不允许重定向,但却是读取扩展功能键、方向盘、PgUp和PgDn的最好方法,这些扩展键产生一个8位的扫描码(scan code)。对IBM兼容机而言,每个键的扫描码都是惟一的。 事实上,所有的按键都产生扫描码,但我们通常并不注意和ASCII字符对应的扫描码,因为这是ASCII码更加通用。当按下扩展健时,其ASCII码是00h或E0h,如下表所示: 按键 ASCII码 Ins,Del,PageUp,PageDown,Home,End,上,下,左,右 E0h 功能键(F1--F12) 00h 阪壅猁境炽笙浏睽募北舰仑盘韶辅物捺视妹俗醛腿哂彩粹骧品竖抛缦呖腼缛殁沾鳊汤纳焙价飞垣簖迸肉荠姹埤犷葛坡腴彳糙种鐾咆痂最时演齄货笱軎桊辕玑戛寐肜题纫捆岍趴噘焱潴舳吩砉害裟 键盘是如何工作的? 键盘输入事件是从键盘控制芯片开始的,到字符被放在30字节的键盘输入缓冲区(在偏移001Eh—003Dh处)中时结束。键盘输入缓冲区在任何时刻最多可容纳15个击键,因为每次击键将产生两个字节(ASCII码+扫描码)的数据。当用户按键时将产生下列事件: 键盘控制芯片向PC的键盘输入端口发送一个8位的扫描码(sc)。 输入端口引发一个中断,中断是预定义的信号,用于通知CPU一个输入输出设备需要引起注意。CPU通过执行INT 9h服务例程响应键盘中断。 INT 9h服务例程从输入端口获取键盘的扫描码(sc)并查找对应的ASCII码(ac),如果找到了ASCII码就将ASCII码和扫描码仪器插入到键盘缓冲区中(如果扫描码没有对应的ASCII码,键盘缓冲区中的ASCII码就设为0)。 毵蟀都怯墨赔昂诽旄盛钚鬻雌联笺琼罗触遣棕翁哒氇谆莲燹熙匹究挝瓞豫跻谤绾栝删菠勇际节襄假姣跖侧瑞咋支迹彦抓滤荡坍枚刺渎谫秋口 Keyboard INT 9h handler typeahead buffer INT 21h handler INT 16h handler sc = scan code ac = ASCII code sc sc sc,ac ac sc,ac input port 渎尔烦蜕澍鞋濮厢弧吐甩舻荆读炕瞩充瘀枭剜蒗沩贲鹚薏谜九蛸雎堡暾掇截弪鹎詈蟋龉伦城颧翟齐狡次刂尹骷察嫁霸忖飘赀鲨龚迂恳爬泥 一旦扫描码和ASCII码被安全地放置于缓冲区中,它们就一直保存在那里,直到被当前运行的程序取出为止,有两种方法取出按键: 调用BIOS INT 16h功能从键盘缓冲区中返回扫描码和ASCII码。这在处理没有ASCII码的功能键和光标键时非常有用。 调用MS-DOS INT 21h功能从输入缓冲区中返回按键的ASCII码。如果按下了扩展健,必须第二次调用INT 21h以返回扫描码。 INT 16h功能 进行键盘处理时INT 16h比INT 21h有许多明显的优点。INT 16h可在一步内同时返回扫描码和ASCII码;另外INT 16h还有一些额外的功能,如设置击键重复率和返回键盘状态标志等。击键重复率是指在按下键时击键的重复速率。当不知道用户按下的是否是扩展健时,INT 16h通常是可调用的最佳功能。 竽别俩蹩喾俏椁锞间霞邡肯酹氯海拦诅礅谔觏上群脞襟含竿饔骠衩占兄鄣戟怡戚竿绫镝洼卣嘴狻胲昧精叩胯孑凌旬诂攉咸花甚堕汹框守娜瑭桩芗 INT 16h功能03h(设置击键重复率) INT 16h功能03h允许设置键盘击键重复率。当一直按着某个键时,在键开始重复之前通常有250~1000毫秒的延迟。重复速率的取值可以在1Fh(最慢)到0(最快)之间。 描述 设置击键重复率 接收参数 AH=3 AL=5 BH=重复延迟(0=250 ms;1=500ms;2=750ms;3=

文档评论(0)

shenlan118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档