回 帖 发 新 帖 刷新版面

主题:求助 ,有关文件拷贝

为什么我从一个文件考到另一个文件的末尾会出现一个黑色的矩形 ?

回复列表 (共1个回复)

沙发

参考一下这个:
;联接文件
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

我来回复

您尚未登录,请登录后再回复。点此登录或注册