emu8086用BIOS和DOS的调用编程完成将一个文件复制到另一个文件中。要求文件名从键盘输入
时间: 2023-06-17 21:07:13 浏览: 132
用系统调用的方式实现文件拷贝
4星 · 用户满意度95%
以下是一个简单的示例程序,使用emu8086汇编语言,从键盘输入两个文件名,然后将一个文件复制到另一个文件中。
```
org 100h
section .data
; 用于存储文件名和相关信息的变量
src_file db 80, 0 ; 源文件名
dst_file db 80, 0 ; 目标文件名
buffer db 512 ; 缓冲区,用于存储文件内容
section .text
; 程序入口
mov ah, 0Ah ; 从键盘读取字符串
mov dx, src_file ; 存储输入到src_file变量中
int 21h
mov ah, 0Ah ; 从键盘读取字符串
mov dx, dst_file ; 存储输入到dst_file变量中
int 21h
; 打开源文件
mov ah, 3Dh ; 打开文件
mov al, 0 ; 只读方式打开
mov dx, src_file ; 源文件名
int 21h
mov bx, ax ; 存储源文件句柄
; 创建或覆盖目标文件
mov ah, 3Ch ; 创建或覆盖文件
mov al, 0 ; 读/写方式打开
mov cx, 0 ; 属性为0
mov dx, dst_file ; 目标文件名
int 21h
mov dx, ax ; 存储目标文件句柄
; 从源文件中读取内容,并写入目标文件
mov ah, 3Fh ; 读取文件内容
mov bx, ax ; 源文件句柄
mov cx, 512 ; 一次最多读取512个字节
mov dx, buffer ; 缓冲区地址
mov ah, 3Fh ; 读取文件内容
int 21h
mov bx, dx ; 目标文件句柄
mov cx, ax ; 读取的字节数
mov dx, buffer ; 缓冲区地址
mov ah, 40h ; 写入文件内容
int 21h
; 关闭文件
mov ah, 3Eh ; 关闭文件
mov bx, ax ; 源文件句柄
int 21h
mov bx, dx ; 目标文件句柄
int 21h
; 程序结束
mov ah, 4Ch ; 退出程序
int 21h
```
请注意,此程序中使用的文件操作函数是DOS API,需要运行在DOS环境下。如果您正在Windows等操作系统上运行此程序,建议使用DOS模拟器,例如DOSBox。
阅读全文