汇编dos调用打开文件为什么显示文件不存在呢

代码如下
路径什么的都是对的 就是打不开 希望好心人能帮帮忙

BUFFLEN=50
DSEG SEGMENT
INFOR1 DB 'Please input the path and the goal file(*:*.*):$'
INFOR2 DB 'Please input the path and the source file(*:*.*):$'
INFOR3 DB 'Copy success!$';操作命令提示
ERROR1 DB'Can not open the file! Please make sure whether the source file is exit!',07H,'$'
ERROR2 DB 'Can not creat the file!',07H,'$'
ERROR3 DB 'Reading error!',07H,'$'
ERROR4 DB 'Writing error!',07H,'$'
;错误命令提示
HANDLE1 DW 0
HANDLE2 DW 0
BUFFER DB BUFFLEN
DB ?
DB BUFFLEN DUP(0);定义一个缓存区
DSEG ENDS

CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG
START:MOV AX,DSEG
MOV DS,AX
MOV DX,OFFSET INFOR2
CALL DMESS;调用DMESS子程序
MOV DX,OFFSET BUFFER
MOV AH,0AH ;输入字符串
INT 21H
;调用NEWLINE子程序
CALL NEWLINE
LEA SI,BUFFER;将BUFFER的有效地址传个SI
MOV AL,[SI+1]
XOR AH,AH;AH清零
ADD SI,2;调整指针
ADD SI,AX
MOV BYTE PTR[SI],0
MOV DX,OFFSET BUFFER+2;将BUFFER+2的有效地址传给DX
MOV AX,3D00H
INT 21H
JNC OPENOK;进位标志被清转移到OPENOK
MOV DX,OFFSET ERROR1
CALL DMESS
JMP OVER
OPENOK:MOV HANDLE1,AX
MOV DX,OFFSET INFOR1
CALL DMESS
MOV DX,OFFSET BUFFER
MOV AH,0AH
INT 21H
CALL NEWLINE
LEA SI,BUFFER;将BUFFER的有效地址传给SI
MOV AL,[SI+1]
XOR AH,AH
ADD SI,2
ADD SI,AX
MOV BYTE PTR [SI],0
MOV DX,OFFSET BUFFER+2
MOV CX,0
MOV AH,3CH;建立文件
INT 21H
JNC CREAOK
MOV BX,HANDLE1
MOV AH,3EH;关闭文件
INT 21H
MOV DX,OFFSET ERROR2
CALL DMESS
JMP OVER
CREAOK:MOV HANDLE2,AX
CONT:MOV DX,OFFSET BUFFER
MOV CX,BUFFLEN
MOV BX,HANDLE1
MOV AH,3FH;读文件
INT 21H
JC READERR
OR AX,AX;进位标志CF清0
JZ COPY_OK
MOV CX,AX
MOV BX,HANDLE2
MOV AH,40H;写文件
INT 21H
JC WRITERR
JMP CONT
READERR:MOV SI,OFFSET ERROR3
CALL DMESS
JMP COPY_OK
WRITERR:MOV SI,OFFSET ERROR4
CALL DMESS
COPY_OK:MOV BX,HANDLE1
MOV AH,3EH
INT 21H
MOV BX,HANDLE2
MOV AH,3EH;关闭文件
INT 21H
MOV DX,OFFSET INFOR3
CALL DMESS
OVER:MOV AH,4CH
INT 21H
;函数NEWLINE实现在串字符后输出一个回车换行:
;功能:显示由DX所指的提示信息
;入口参数:DS:DX=需要输出字符串的首地址,字符串以S为结束标志
;出口参数:无
DMESS PROC
MOV AH,9;显示字符串
INT 21H
RET;段内返回
DMESS ENDP
;功能:形成回车和换行
;出口参数:无
;入口参数:无
NEWLINE PROC
PUSH AX
PUSH DX;保护寄存器
MOV DL,0DH
MOV AH,2;显示输出
INT 21H
MOV DL,0AH
MOV AH,2
INT 21H
POP DX
POP AX
RET
NEWLINE ENDP
CSEG ENDS
END START;程序结束`

1个回答

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问