分享

汉字显示编程示例

 ekylin 2007-05-14
[转帖]汉字显示编程示例 作者cnangel [第 1 楼] 内容:文件操作是编程中经常要用到的功能,读取运行参数、保存运行结果等等都需要用到文件操作。

  在大多数编程语言中文件操作都是很容易实现的,因为它们都附带了相关的函数库,但在汇编语言中没有这样的库,因此就只有自己动手来做了。

在DOS平台下文件读写操作要通过DOS功能调用来做到。DOS功能调用提供了非常丰富的文件操作服务,涵盖了包括文件查找、建立、删除、读写、重定向 等大量功能。其他的编程语言的文件访问库函数只不过是对DOS功能调用进行了封装而已。下面我们就来看一下几个常用的文件操作服务的功能及调用参数:

   AH = 3cH  建立文件
     入口参数
       CX    = 文件属性
       DS:DX = 文件名字符串
     返回值
       CF = 0 操作成功,此时 AX = 文件句柄
       CF = 1 操作失败,此时 AX = 错误代码

   AH = 3dH  打开文件
     入口参数
       AL    = 0 按只读方式打开
               1 按只写方式打开
               2 按读写方式打开
       DS:DX = 文件名字符串
     返回值
       CF = 0 操作成功,此时 AX = 文件句柄
       CF = 1 操作失败,此时 AX = 错误代码

   AH = 3eH  关闭文件
     入口参数
       BX    = 文件句柄
     返回值
       无

   AH = 3fH  读文件
     入口参数
       BX    = 文件句柄
       CX    = 要读的字节数
       DS:DX = 存放读入数据的缓冲区
     返回值
       CF = 0 操作成功,此时 AX = 成功读入的字节数
       CF = 1 操作失败,此时 AX = 错误代码

   AH = 40H  写文件
     入口参数
       BX    = 文件句柄
       CX    = 要写的字节数
       DS:DX = 要写的数据
     返回值
       CF = 0 操作成功,此时 AX = 成功写入文件的字节数
       CF = 1 操作失败,此时 AX = 错误代码

   AH = 42H  移动文件指针
     入口参数
       AL    = 0 从文件头开始向后移动文件指针
               1 从文件指针当前位置开始向后移动文件指针
               2 从文件尾开始向前移动文件指针
       BX    = 文件句柄
       CX:DX = 文件指针要移动的字节数
     返回值
       CF = 0 操作成功,此时 DX:AX = 当前文件指针的位置
       CF = 1 操作失败,此时 AX = 错误代码
 

  从上面的说明可以看出,文件访问操作只需要按要求设置好参数然后调用指定的调用即可。下面我就给出一个例子来说明文件操作的使用。

 Code    Segment
     Assume  CS:Code
 Start:
     Mov     AX,CS
     Mov     DS,AX
     Mov     AX,3c00H
     Mov     CX,20H    ;文件属性为归档
     Mov     DX,Offset FileName
     Int     21H       ;建立文件
     Jc      Err1
     Mov     BX,AX
     Mov     AX,3e00H
     Int     21H       ;关闭文件
     Mov     AX,3d02H
     Mov     DX,Offset FileName
     Int     21H       ;按读写方式打开文件
     Jc      Err2
     Mov     BX,AX
     Mov     AX,4000H
     Mov     CX,14     ;要写的字节数
     Mov     DX,Offset Msg
     Int     21H       ;写数据到文件
     Jc      Err3
     Mov     AX,3e00H
     Int     21H       ;关闭文件
 Exit:
     Mov     AX,4c00H
     Int     21H
 Err1:
     Mov     DX,Offset Error1
     Jmp     ShowErr
 Err2:
     Mov     DX,Offset Error2
     Jmp     ShowErr
 Err3:
     Mov     DX,Offset Error3
     Jmp     ShowErr
 ShowErr:
     Mov     AX,900H
     Int     21H
     Jmp     Exit
 Error1    DB    "Create file fail.",13,10,"$"
 Error2    DB    "Open file fail.",13,10,"$"
 Error3    DB    "Write file fail.",13,10,"$"
 FileName  DB    "Data.txt",0
 Msg       DB    "Hello World!",13,10
 Code    Ends
     End     Start
 

  最后要注意的一点是:在对文件写操作完毕之后记得要关闭文件才能使用系统将数据刷新到磁盘上,否则写进去的东西很可能会丢失。 日期2003101607:59pm

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多