- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
BIOS中断和DOS功能调用
BIOS中断和DOS功能调用 BIOS和DOS 绝对地址从0FE000开始的8KB空间是BIOS的内存映象,包括系统加电自检,引导装入,主要I/O设备的驱动,以及接口控制等程序模块。包括全部系统中断处理程序。BIOS功能调用,提供统一的输入输出方法,程序员不必直接访问端口,不必了解硬件接口的细节。因此给编程带来极大方便。 MSDOS.SYS包括一个文件管理程序和一些处理程序,在DOS下运行的程序可以调用这些处理程序。为了完成DOS功能调用,MSDOS.SYS把信息传送给IO.SYS。形成一个或多个BIOS调用。 在一些情况下,既能选择DOS中断也能选择BIOS中断来执行同样的功能。但BIOS中只有一些最基本的输入输出和中断程序, BIOS比DOS更靠近硬件,因此建议尽可能地使用DOS功能但在少数情况下必须使用BIOS功能, DOS中断能处理大多数的I/O,但有一些功能没有提供;如声音控制等,这就要考虑用I/O指令在端口级上编程,或使用高级语言编程。 键盘I/O 键盘提供了三种基本类型的键: 1.字符键,如字母A到z,数字 0 到 9,%,$,等, 2.扩展功能键,如 Home,End,Backsp,Arrows,Retum,Del,Ins,PgUp,PgDn 以及程序功能键等。 3. 和其它镀组合使用的控制键,如 AIt,Ctrl 和 Shift。 字符键给计算机传送一个ASCII码字符,而扩展功能键产生一个动作,如按下Home 键能把光标移到文本行首,End 键使光标移到屏幕文本行的末尾。使用控制键能改变其它键所产生的字符码。 键盘是计算机最基本的一种输入设备,用以输入信息。下面将介绍BIOS 和 DOS 的键 盘操作。 字符码与扫描码 当我们在键盘上“按下”或“放开”一个键时,如果键盘中断是允许的( 21H端口第1位= 0),就会产生一个类型9的中断,并转入到 BIOS 的键盘中断处理程序。该处理程序从 8255 可 编程序外围接口芯片的输入端口 60H 读取一个字节,这个字节的低 7 位是键的扫描码,最高 位为0或为1,分别表示键是“按下”状态还是“放开”状态。按下时,取得的字节称为通码,放开 时,取得的字节称为断码。如按下Esc 键时产生一个通码为 01H,放开Esc 键时产生一个断码为 81H。键盘上的每个键都对应一个扫描码,从01 (Esc) 到 83 (Del),或从 01H 到 53H,所以根据扫 描码就能唯一地确定哪一个键改变了状态。表 9.3是键盘上每个键对应的扫描码(十六进制)。 BIOS 键盘处理程序将取得的扫描码转换成相应字符码,大部分键的字符码是一个标准的ASCII码,没有相应 ASCIIi码的键,如A1t和功能键 (F1一F12);字符码为0,还有一些非 ASCII码键产生一个指定的操作,如打印屏幕内容等。转换成的字符码以及扫描码存储在 ROM BIOS的数据区的键盘缓冲区KB—BUFFER中。 键盘缓冲区 键盘缓冲区是一个先进先出的循环队列,BUFF。HEAD和 BUFF—TAIL是缓冲区的两个地址指针。当 HEAD 指针和 TAIL 指针相等时,说明缓冲区空。当 CPU 想要得到键盘输入时,就调用BIOS键盘例行程序,它按其接收时的次序从缓冲区取出字符和扫描码,回送给CPU。缓冲区的大小可适应最快的打字员,但如果缓冲区已满又按下了一个键,BIOS 不处理这个镀,只发出“喃”的响声。 我们可以用BIOS中断,也可以用DOS中断和键盘通讯,下面我们分别讨论这两种键盘中断。 BIOS键盘中断 INT 16H 键盘中断提供了基本的键盘操作,16H 的中断处理程序包括3个不同的功能,分别根据AH寄存器的内容来选择(见表9.4). 利用INT 16H调用键盘I/O ROM 例行程序时,先在AH中放一个功能号0,1或2,例如我们要查看按键的扫描码和 ASCII 码,可以调用中断类型16H的 0功能,该功能把扫描码回送到 AH中,把ASCII码回送到AL中,然后调用二进制转换十六进制的子程序BTHEX,把AH和AL中的内容打印出来。其指令序列为… MOV AH,03 ;取 character functlon INT 16H ;Keyboard ROM call MOV BX,AX ;move AX to BX CALL BTHEX ; 前面我们已经提到 Shift、Ctrl、A1t、Num Lock、PrtScreen、Ins和ScrollLock 这些键不具有ASCII码,但按动了它们能改变其它键所产生的代码,那么如何能判断这些键按动与否呢? INT l6H的AH
文档评论(0)