⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 copyfile.asm

📁 本程序是用汇编语言完成
💻 ASM
字号:
DATAS SEGMENT
    ;此处输入数据段代码
    source db 30 dup(0)	;存储原文件名
    target db 30 dup(0)	;存储目标文件名
    sourhandle dw ?	;原文件句柄
    targhandle dw ?	;目标文件句柄
    buffer db 80h dup(?)	;缓冲区,存储从原文件中读取的字符
DATAS ENDS

STACKS SEGMENT
    ;此处输入堆栈段代码
STACKS ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
	push ds
	sub ax,ax
	push ax
    MOV AX,DATAS
    MOV DS,AX
    ;此处输入代码据段代码
    mov si,82h	;取段前缀地址
    lea di,source
a1:
	mov al,es:[si]
	cmp al,' '	;遇到空格,说明原文件名读完
	je next
	mov [di],al	;将原文件名存入source
	inc si
	inc di
	jmp a1
next:
	inc si	;跳过空格
	lea di,target
a2:
	mov al,es:[si]
	cmp al,0dh	;遇到回车,目标文件名读完
	je next1
	mov [di],al	;将目标文件名存入target
	inc si
	inc di
	jmp a2
next1:
	mov ah,3dh	;为读打开原文件
	mov al,00
	lea dx,source
	int 21h
	mov sourhandle,ax	;原文件句柄送sourhandle
	
	mov ah,3ch	;建立一个属性正常的目标文件
	mov cx,00
	lea dx,target
	int 21h
	mov targhandle,ax	;目标文件句柄送targhandle
	
writh:
	mov ah,3fh	;读文件,信息存储在缓冲区中
	mov bx,sourhandle
	mov cx,80h	;每次读取80h个字节
	lea dx,buffer
	int 21h
	cmp ax,80h
	jb part	;文件读完
all:
	mov cx,80h	
	mov ah,40h	;将缓冲区中的内容写入目标文件
	mov bx,targhandle	
	lea dx,buffer
	int 21h
	jmp writh
part:	
	mov cx,ax	;将读出的数据写入目标文件
	mov ah,40h	;将缓冲区中的内容写入目标文件
	mov bx,targhandle
	lea dx,buffer
	int 21h
exit:
	mov ah,3eh	;关闭原文件
	mov bx,sourhandle
	int 21h
	mov ah,3eh	;关闭目标文件
	mov bx,targhandle
	int 21h	
	MOV AH,4CH
	INT 21H
CODES ENDS
    END START

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -