我对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中编译它时,它正确地工作。我不知道问题出在哪里。有人能帮我吗?
发布于 2016-05-29 18:18:04
当您收到提示时,仿真器将在C:\emu8086\MyBuild中查找文件,因为您没有指定包含驱动器号的绝对路径。
DOS文件系统在C:\emu8086\vdrive\x (x是一个驱动器号)中进行仿真。 如果未指定驱动器号且未设置当前目录,则默认使用C:\emu8086\MyBuild\ path。
(来源)
https://stackoverflow.com/questions/37511183
复制相似问题