主题:求助 ,有关文件拷贝
zhlfa
[专家分:0] 发布于 2006-12-13 17:57:00
为什么我从一个文件考到另一个文件的末尾会出现一个黑色的矩形 ?
回复列表 (共1个回复)
沙发
yclz [专家分:1520] 发布于 2006-12-13 19:32:00
参考一下这个:
;联接文件
BUFFLEN = 512
DSEG SEGMENT
FNAME1 DB 'TEST1',0
FNAME2 DB 'TEST2',0
HANDLE1 DW 0
HANDLE2 DW 0
ERRMESS1 DB 'Can not open file',07h,'$'
ERRMESS2 DB 'Reading error',07h,'$'
ERRMESS3 DB 'Writing error',07h,'$'
BUFFER DB BUFFLEN DUP(0)
DSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG
START:
MOV AX,DSEG
MOV DS,AX
;打开文件
MOV DX,OFFSET FNAME1
MOV AX,3D01H
INT 21H
JNC OPENOK1
ERR1:
MOV DX,OFFSET ERRMESS1
CALL DISPMESS
JMP OVER
OPENOK1:
MOV HANDLE1,AX
MOV DX,OFFSET FNAME2
MOV AX,3D00H
INT 21H
JNC OPENOK2
MOV BX,HANDLE1
MOV AH,3EH
INT 21H
JMP ERR1
OPENOK2:
MOV HANDLE2,AX
XOR CX,CX
XOR DX,DX
MOV AX,4202H
INT 21H
CONT:
MOV DX,OFFSET BUFFER
MOV CX,BUFFLEN
MOV BX,HANDLE2
MOV AH,3FH
INT 21H
JC RERR
OR AX,AX
JZ COPYOK
MOV CX,AX
MOV BX,HANDLE1
MOV AH,40H
INT 21H
JNC CONT
WERR:
MOV DX,OFFSET ERRMESS3
CALL DISPMESS
JMP SHORT COPYOK
RERR:
MOV DX,OFFSET ERRMESS2
CALL DISPMESS
COPYOK:
MOV BX,HANDLE1
MOV AH,3EH
INT 21H
MOV BX,HANDLE2
MOV AH,3EH
INT 21H
OVER:
MOV AH,4CH
INT 21H
DISPMESS PROC
DISPMESS ENDP
MOV AH,09H
INT 21H
RET
CSEG ENDS
END START
CSEG ENDS
我来回复