【例9.1】从键盘读入一个符号串作为文件名,如果文件存 在,则显示其中的内容。 【解】
data SEGMENT str1 DB 'Input File Name : $' str2 DB 13,10, 'File not found. ',13,10, '$' fn DB 80,81 dup(0) handle DW 0 buf DB 10000 DUP(0) data ENDS code SEGMENT ASSUME CS:code,DS:data
CX=时间,DX=日期
取日期和时间成功 时 , CX= 时 间 , DX=日期
9.2 控制键盘的技术
键盘是把外部信息及人对计算机的控制命令送入计算机 内部的重要设备。有效地利用键盘可以使编制的软件给操作 者提供方便快捷的操作方式,在适当的时候封锁键盘又可以 使程序执行中不受来自键盘的中断的干扰。
有关键盘的中断有3个:DOS的21H号中断,提供功能较 强的读键功能;BIOS的16H号中断,提供较低层次的服务; BIOS的9号中断,这是键盘硬中断,每当键盘上有键被按下, 键盘都会通过接口向CPU提出9号中断请求。
属性字节的各个位与属性含义的对应关系见图9.1。
位号: 7 6 5 4 3 2 1 0
只读 隐藏 系统 卷标 子目录 归档
图9.1 属性字节中各属性位的分布
9.1.2.4 文件操作示例
浏览是最常用的文件操作,需要把文件中的数据从头 到尾读出。在成功地打开文件之后,必须先把文件的内容 读到内存中,然后才能进行处理,这就要求在内存中开辟 一定数量的缓冲区,用于存放读入的数据。但是,编程时 无法预计要处理的文件的大小,因而也就不知道设置的缓 冲区的容量是否合适。通常,只要操作系统允许,可以尽 可能地建立大容量的缓冲区,一次读入较多的数据,以减 少读盘次数。不论缓冲区设置有多大,其容量小于文件大 小的可能性总是存在的,因此,必须考虑如果文件中的数 据一次读不完时如何处理。下面的例9.1用程序说明了解决 这个问题的方法。