Emu8086 - 无法打开文件
Posted
技术标签:
【中文标题】Emu8086 - 无法打开文件【英文标题】:Emu8086 - cannot open file 【发布时间】:2016-05-29 14:39:11 【问题描述】:emu8086 有问题。我想打开一个文件,但是当我尝试模拟它时,它显示一个错误。
data1 segment
in_file db 'input.txt',0
handle dw ?
warn db "Error$"
data1 ends
code1 segment
start1:
mov ax,seg w_stosu
mov ss,ax
mov sp,offset w_stosu
mov ax,seg in_file
mov ds,ax
mov dx,offset in_file
mov ax,3d00h
int 21h
jb error
mov ds:[handle],ax
mov ax,04c00h
int 21h
error:
mov dx,offset warn
call print_dx
mov ax,04c00h
int 21h
print_dx:
mov ax,seg data1
mov ds,ax
mov ah,9h
int 21h
ret
code1 ends
stack1 segment stack
dw 255 dup(?)
w_stosu dw ?
stack1 ends
end start1
错误出现在这部分:
mov ax,3d00h
int 21h
文件不存在 C:\emu8086\MyBuild\input.txt 中断错误:21h/3Dh:无法打开文件。
我的输入文件 (input.txt
) 在应该在的C:\emu8086\vdrive\C
中。当我在dosbox
的 MASM 中编译它时,它可以正常工作。我不知道问题可能出在哪里。有人可以帮我吗?
【问题讨论】:
【参考方案1】:正如您收到的错误消息提示,模拟器正在C:\emu8086\MyBuild
中查找文件,因为您没有指定包含驱动器号的绝对路径。
DOS文件系统模拟在C:\emu8086\vdrive\x(x为盘符)
如果未指定盘符且未设置当前目录,则 C:\emu8086\MyBuild\ 默认使用路径。
(source)
【讨论】:
我在 C:\emu8086\MyBuild\ 中也有那个文件,它显示了同样的错误。以上是关于Emu8086 - 无法打开文件的主要内容,如果未能解决你的问题,请参考以下文章