- 1、本文档共32页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
4. 鼠标中断功能调用INT 33H 提供对鼠标(mouse)的控制和调整,处理鼠标驱动程序提供的信息。 功能号为00H~34H。与DOS系统功能调和大部分BIOS功能调用不同,功能号不放入AH,而放在AL中,事先令AH=0。 目前可用的鼠标功能调用有50余个。如:鼠标复位,显示或隐藏鼠标光标,设置鼠标光标位置,设置图形或文本光标,设置或获取加速曲线等等。 §4.2 DOS系统功能调用和BIOS中断调用 4.2.1 概述 4.2.2 DOS系统功能调用 4.2.3 BIOS中断调用 4.2.1 概述 磁盘操作系统DOS采用模块化、层次化结构,其层次结构如图4.4所示。 4.2.1 概述 组成DOS的各主要模块的功能: 系统硬件 主要指I/O设备,如CRT显示器、打印机、键盘、硬盘和鼠标等。 基本输入输出系统 BIOS(Basic Input Output System) 包含能直接与底层硬件打交道的设备驱动程序。此外还包含系统设置信息、开机后自检程序和系统自启动程序。利用中断调用指令INT n,可以直接调用BIOS中的外设驱动程序,实现对主要I/O设备的控制管理。 DOS核心 MSDOS.SYS 该模块以BIOS为基础,为用户提供一大批可以直接使用的服务程序,这组服务程序称为DOS系统功能调用。可用INT 21H指令来调用,并以功能号来区分不同的服务程序。它们主要用来实现文件管理、存储器管理及设备管理等,功能比BIOS更齐全、更完整。 命令处理程序 COMMAND.COM 该模块以可执行命令文件的形式存放在系统盘上,它执行后便给出DOS命令提示符“”,由它接收用户在此提示符下键入的命令,进行分析处理后,让机器执行各种应用程序,在CRT上显示执行结果。 4.2.1 概述 4.2.2 DOS系统功能调用 4.2.3 BIOS中断调用 4.2.2 DOS系统功能调用 1.中断处理程序分类 8086 CPU可处理256类中断,利用INT n 指令,可直接调用256个系统已编写好的中断处理程序。INT n指令中的类型号n=00~FFH; n=00~04H为专用中断,处理除法错、单步、不可屏蔽中断NMI、断点、溢出中断; n=10H~1AH、2FH、31H、33H为BIOS中断,即保存在系统ROM BIOS中的BIOS功能调用。 1.中断处理程序分类 n=20H~2EH为DOS中断,应用DOS提供的功能程序来控制硬件,可对显示器、键盘、打印机、串行通信等字符设备提供输入输出服务。 例如: n=20H为程序结束中断,利用INT 20H中断可返回DOS操作系统。 n=21H则为功能最强大的DOS中断,它包含了很多子功能,给每个子功能程序赋一个编号,称为功能号,调用前要送到AH寄存器中。 2. DOS系统功能调用方法 DOS系统功能调用的步骤: 1)功能调用号送到AH寄存器中,AH=00~6CH。 2)入口参数送到指定的寄存器中,一种功能调用又包含多个子功能,有些调用不带参数。 3)执行INT 21H指令。 4)得到出口参数,或将结果显示在CRT上。 部分DOS功能调用见表4.4 (看书)。 3. DOS系统功能调用举例 1)DOS键盘功能调用 利用DOS功能调用,可将读入的键值送进AL,并显示在CRT上,或检查是否有键压下等,还可将从键盘输入的一串字符输入到内存缓冲区中。 例4.18 DOS功能调用1,等待从键盘输入一个字符。 MOV AH,01 H ;AH 功能调用号01H INT 21H ;AL 读入键值,并显示该字符 若有键压下, 读入键值, 并检查是否为Ctrl-Break键?若是, 自动调用INT 23H中断, 执行退出命令;否则将键值送入AL, 并显示该字符。 3. DOS系统功能调用举例 例4.19 交互式程序中,用户键入字母键Y或N,分别转入不同的程序去处理,并在CRT上显示键入字符; 若按了Ctrl-Break,则结束程序,否则继续等待。 GET_KEY: MOV AH,01H ;AH 功能调用号01H INT 21H ;AL? 读入键值 CMP AL,‘Y’ ;键值是Y吗? JE YES ;是,转YES CMP AL,‘N’ ;不是Y,是N吗? JE NO ;是,转NO JNE GET_KEY ;不是N,返回继续等待 YES: ┇ ;按Y键的处理程序 NO: ┇ ;按N键的处理程序 3. DOS系统功能调用举例 例4.20 DOS功能调用6,控制台I/O(控制台指键盘和CRT),不检查是否按了Ctrl-Break键。 MOV AH
文档评论(0)