; 实验八-6: 文件重命名程序 ; 功能: 使用DOS功能号56H重命名文件 ; 说明: 可用于移动文件到不同目录 DATAS SEGMENT OLD_NAME DB 'oldname.txt', 0 ; 原文件名 NEW_NAME DB 'newname.txt', 0 ; 新文件名 ERR_MSG DB 'Rename error!', 0DH, 0AH, '$' OK_MSG DB 'File renamed successfully!', 0DH, 0AH, '$' EXIST_MSG DB 'Target file already exists!', 0DH, 0AH, '$' DATAS ENDS STACKS SEGMENT DB 64 DUP(?) STACKS ENDS CODES SEGMENT ASSUME CS:CODES, DS:DATAS, SS:STACKS START: MOV AX, DATAS MOV DS, AX ; 重命名文件 (功能号56H) ; AH = 56H (重命名文件功能号) ; DS:DX = 原文件名地址 ; ES:DI = 新文件名地址 LEA DX, OLD_NAME LEA DI, NEW_NAME MOV AH, 56H INT 21H ; 检查重命名是否成功 JNC RENAME_SUCCESS ; 检查错误类型 ; AX = 02H 表示文件未找到 ; AX = 05H 表示访问被拒绝 ; AX = 11H 表示试图重命名为已存在的文件 CMP AX, 11H JE FILE_EXISTS LEA DX, ERR_MSG MOV AH, 09H INT 21H JMP PROGRAM_END FILE_EXISTS: LEA DX, EXIST_MSG MOV AH, 09H INT 21H JMP PROGRAM_END RENAME_SUCCESS: LEA DX, OK_MSG MOV AH, 09H INT 21H PROGRAM_END: MOV AH, 4CH INT 21H CODES ENDS END START