题目来源:http://zhidao.baidu.com/question/131059632.html
*** 作说明:在输入源文件名或目标文件名时,若直接回车,则结束程序,未有提示
本程序在MASMPlus 1.2集成环境下通过编译,经过调试,谨悔运行正确。蚂羡
Code Segment
Assume CS:Code,DS:Code
------------------------闷晌拍-------------
功能:显示指定地址(Str_Addr)的字符串
入口:
Str_Addr=字符串地址(要求在数据段)
用法: Output Str_Addr
用法举例:Output PromptStr
Output MACRO Str_Addr
lea dx,Str_Addr
mov ah,9
int 21h
EndM
-------------------------------------
Handle_File dw ?,? 文件代号
Prompt_Str1 db 13,10,'Please input the path and name of source file: $'
Prompt_Str2 db 13,10,'Please input the path and name of target file: $'
Prompt_Str3 db 13,10,13,10,'The source file does not exist.$'
Prompt_Str4 db 13,10,13,10,'Invalid path.$'
Press_Key db 7,13,10,13,10,'The file has been copied.'
db7,13,10,13,10,'Press any key to exit...$'
Start:push cs
pop ds
push cs
pop es 使数据段、附加段与代码段同段
Input_Src: Output Prompt_Str1 提示输入源文件路径和文件名
lea dx,File_Name 字符串缓冲区
mov ah,0ah
int 21h
lea si,File_Name[1]
lodsb 读入实际输入的字符个数
test al,al
jz Exit_Proc 若输入文件名时,直接回车,则结束程序
xor ah,ah
mov bx,ax
mov BYTE ptr [bx][si],0
mov dx,si
Open_File: mov ax,3d40h 打开源文件
int 21h
jc $+8
mov Handle_File,ax 保存源文件代号
jmp Input_Tar
cmp ax,5
jz Open_File 若访问被拒绝,尝试再次打开文件
cmp ax,2
jnz $+12
Output Prompt_Str3 提示:文件不存在
jmp Input_Src
cmp ax,3
jnz $+12
Output Prompt_Str4 提示:无效的路径
jmp Input_Src
Input_Tar: Output Prompt_Str2 提示输入目标文件路径和文件名
lea dx,File_Name 字符串缓冲区
mov ah,0ah
int 21h
lea si,File_Name[1]
lodsb 读入实际输入的字符个数
test al,al
jz Exit_Proc 若输入文件名时,直接回车,则结束程序
xor ah,ah
mov bx,ax
mov BYTE ptr [bx][si],0
mov dx,si
Create_File: xor cx,cx
mov ah,3ch 建立目标文件
int 21h
jnc @@Next1
cmp ax,3
jnz Create_File
Output Prompt_Str4 提示:无效的路径
jmp Input_Tar
@@Next1: mov Handle_File[2],ax 保存目标文件代号
lea dx,File_Name 文件内容缓冲区
mov cx,0ffc0h 预留32个字的堆栈空间
sub cx,dx 设置读写一次文件内容的字节数
mov bp,cx 暂存
Read_File: mov cx,bp
mov bx,Handle_File 读取源文件代号
mov ah,3fh 读文件内容
int 21h
jc Read_File 读文件失败,尝试再读
test ax,ax
jz Close_File 若实际读取的字节数为0,结束读写 *** 作,关闭源文件和目标文件
mov bx,Handle_File[2] 读取目标文件代号
mov cx,ax
Write_File: mov ah,40h 写文件
int 21h
jc Write_File 写文件失败,尝试再写
jmp Read_File
Close_File: mov bx,Handle_File 读取源文件代号
mov ah,3eh 关闭文件
int 21h
mov bx,Handle_File[2] 读取目标文件代号
mov ah,3eh 关闭文件
int 21h
-------------------------------------
Exit_Proc: Output Press_Key 提示 *** 作完成,按任意键结束程序
mov ah,1
int 21h
mov ah,4ch 结束程序
int 21h
File_Name db 81 字符串缓冲区
Code Ends
END Start 编译到此结束
汇编语言中没有什么文件复制的指令。汇编语言针对的是档手孝机器行稿,他经过编译后只会告诉机器执行什么 *** 作。要想薯纤真正实现什么文件复制,那不是一个指令就可以搞定的,毕竟不是像我们桌面上简单复制粘贴就可以,后面要编很多程序才行。1、首先打开Word文档,将卜胡鼠标在文档上点击一下,进入下一页,从第二页开始逐篇将需要汇编的文件按先后顺序复制到文档内。2、其次选中需要汇编的文件,点击开始,将字体统一设置为宋体字,字体大小统一设置为小四。
3、然后选中每篇文件标题,点击鼠标右键选中段落,找到大纲级别选择2级,点击确定,将光标移到首页,回车两行,点击引用,点击插入目录,再点击确定,生成文件汇编目录。
4、最后将光标如渗移至首页第一行,打上目录,点击插入,点击页码,选中目录,根据需要对文本进行字体、段落设置,文件型橡拦汇编文成。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)