学习型 ASP/PHP/ASP.NET 主机 30元/年全能 ASP/PHP/ASP.NET 主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付
发新话题
打印

为什么不能创建文件

为什么不能创建文件

为什么这个程序不能创建文件?
DATAS SEGMENT
  buf1  db 'fistf.txt',0  
DATAS ENDS

STACKS SEGMENT
   
STACKS ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
    MOV AX,DATAS
    MOV DS,AX
   
    mov ah,3ch
    mov dx,offset buf1
    int 21h
    jnc ok
    jc  no
ok: mov ah,2
    mov dl,3
    int 21h
   
no: mov ah,2
    mov dl,12
    int 21h        
    MOV AH,4CH
    INT 21H
CODES ENDS
    END START

TOP

没有设置文件属性

你创建文件时没有指定文件的属性,应该在创建前加一句MOV CX,00H或其他属性值。
参考如下:

中断INT 21H功能3CH
功能描述: 用指定的文件名创建一个新文件。如果指定的文件已存在,则设置其长度为0。创建后,该文件是打开的,并返回其句柄
入口参数: AH=3CH
DS:DX=指定文件名字符串的地址(以0为字符串的结束标志)
CX=文件属性(这些标志位可以组合)
位0=1——只读
位1=1——隐含
位2=1——系统
位3=1——卷标号
位5=1——归档
其它位保留不用,并置为0
出口参数: CF=0——创建成功,AX=文件句柄,否则,AX=错误号(03H、04H或05H),其含义见错误代码表

TOP

谢谢你的回答

TOP

发新话题