我的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中编译它时,它可以正常工作。我不知道问题出在哪里。有人可以帮我吗?
答案 0 :(得分:0)
当您收到提示的错误消息时,模拟器正在C:\emu8086\MyBuild
中查找文件,因为您没有指定包含驱动器号的绝对路径。
DOS文件系统在C:\ emu8086 \ vdrive \ x中模拟(x是驱动器号)
如果未指定驱动器号并且未设置当前目录,则C:\ emu8086 \ MyBuild \ 默认情况下使用路径。
(source)