单击此处编辑母版文本样式,第二层,第三层,第四层,第五层,单击此处编辑母版标题样式,*,*,第8章,第八章 DOS高级调用程序设计,第八章 DOS高级调用程序设计,本章主要内容,8.1 磁盘文件管理程序(1学时),本章主要内容8.1 磁盘文件管理程序(1学时),DOS功能调用(75),设备管理:,文件管理,:,目录管理:,其他功能,:时钟管理、中断向量设置、,程序驻留,DOS功能调用(75),磁盘功能:保存数据的存储媒体,信息存放形式:文件记录字节,磁盘文件管理:,功能:DOS与用户程序之间传递信息,文件打开、关闭、读写等。,方式:,传统文件管理-文件控制块FCB,扩展文件管理,-ASCIIZ串,文件句柄,8.1 磁盘文件管理程序,磁盘功能:保存数据的存储媒体8.1 磁盘文件管理程序,8.1.1,扩展磁盘,文件管理有关概念,1.,ASCIIZ,串,作用:文件说明(用户打开建立时),组成:最后一个字节为0,其余字节指示文件位置,格式:,d:path filiname.ext,8.1.1 扩展磁盘文件管理有关概念,2 文件句柄,控制块:,打开建立文件后DOS在保留区建立的信息-,文件名、存放盘及路径、,读写位置指针等,文件句柄,:DOS返回用户的一个,控制字,(16为的,二进制),例:读写字符设备文件句柄表8.1,2 文件句柄控制块:打开建立文件后DOS在保留区建立的,3.错误返回码,出口参数:,调用成功CF=0,调用失败CF=1,错误类型码:寄存器AX(表8.2),4.文件属性:文件特性(6位),只读、隐藏、系统、,卷标、子目录、归档,3.错误返回码出口参数:,注意:,入口参数、出口参数,1.建立文件(功能号3CH),2.打开文件(功能号3DH),3.关闭文件(功能号3EH),4.读文件(功能号3FH),5.写文件(功能号40H),6.删除文件(功能号41H),7.移动文件读写指针文件(功能号42H),8.搜索第一个匹配文件(功能号4EH),8.1.2 常用,扩展磁盘,文件管理系统功能调用,注意:入口参数、出口参数8.1.2 常用扩展磁盘文件管,8.1.2,扩展文件管理程序示例,8.1.2 扩展文件管理程序示例,8.2 时钟程序,8.2.1功能调用,1.取日期(功能号2AH),2.置日期(功能号2BH),3.取时间(功能号2CH),4.置时间(功能号2DH,),8.2.2 程序例,8.2 时钟程序,8.2 驻留程序,DOS提供程序终止中断方式返回DOS:,程序退出、释放内存INT 21H,(功能号0/4CH),程序退出、,驻留内存部分/全部,8.2 驻留程序DOS提供程序终止中断方式返回DOS:,(1)驻留程序在执行结束后,使程序的一部分仍留在内存,受到操作系统的保护,可以由其它程序再次激活。,(2)驻留程序的基本框架,通常分为两部分:常驻部分和暂驻部分。当TSR程序执行时,由暂驻部分完成初始化,将某个中断向量指向常驻部分对应的ISR,然后驻留退出。将来真正起作用的是常驻部分。,在设计TSR程序时,为了不浪费内存空间,最好将常驻部分放到低内存地址,使暂驻部分位于高地址。较简单的方法是把要常驻的代码和数据组织在一个段中,并使之作为装入内存的第1个段。,(3)设计驻留程序应注意的问题,由于已驻留的TSR程序随时可能会中断其它程序的执行,因此,必须保护要修改的所有寄存器的值。此外,由于INT 21H是不可重入的,因此,在驻留的中断服务程序中,要避免调用INT 21H。,(1)驻留程序在执行结束后,使程序的一部分仍留在内存,受到,8.3.1,程序驻留的功能调用,INT27H,INT21H功能号31H,8.3.2,程序驻留的编制,(1)取、存原中断向量INT21H功能号35H,(2)设置信中断向量 INT21H功能号25H,(3)设置内存个数 INT21H功能号31H,例8-6,8.3.1 程序驻留的功能调用,设置中断向量:,AH=25H、AL=中断类型号,DS:DX=中断向量,INT 21H,取中断向量:,AH=35H、AL=中断类型号,INT 21H,返回时送ES:BX=中断向量,设置中断向量:,放松一下,放松一下,