![]() | 第8章 文件句柄功能与磁盘 | -215- | |||||||||||||||||||
abord: exit: main code |
int jc cmp jz mov mov int mov int mov mov int jmp mov mov int mov int endp ends end |
21h abord cx,32 dup_loop ah,3eh bx,handle1 21h bx,handle2 21h dx,offset msg2 ah,9 21h exit dx,offset msg1 ah,9 21h ah,4ch 21h main |
;若数据未能正确写入文件,转ABORD ;处理的数据够32个字节吗? ;若处理的数据够32字节,转DUP_LOOP继续 ;关闭源文件 ;关闭目标文件 ;显示字符串MSG2 ;转EXIT结束进程 ;输出字符串MSG1 ;结束进程 |
||||||||||||||||||
通过这个程序我们可以看到写入功能40H的调用方法与3FH功能大同小异。这个程序每次处理32字节数据,依据DOS在AX寄存器返回的字节数判断是否处理完所有数据。它还演示了3CH功能的用法,除此之外没有什么更多特殊的地方。当然,有一点还要提醒大家,那就是不要忘记使用3EH功能关闭文件确实保证数据存入磁盘。 我们的学习好象变得越来越平淡了,新问题似乎变得少了,可能这就是一般所说的"书越念越浅"吧。实际上我所要讲解的东西也确实是越来越少,大家通过这一段的学习,对汇编语言的特点和学习方法已有了一定的了解,很多问题不用我说大家自然知道如何应用DEBUG之类的工具软件去分析研究。当然,概念性的内容还是要仔细讨论的,比如程序TYPEFILE.ASM所反映出的问题: |
|||||||||||||||||||||
TYPEFILE.ASM |
|||||||||||||||||||||
HANDLE2 data fname1 |
equ segment assume db |
02h ds:data 'config.txt',0 |
;将处理的文件名 |
||||||||||||||||||
Copyright © 2004-2015 Reanimator | www.cookmoon.org |