Emu8086 - 无法打开文件

时间:2016-05-29 14:39:11

标签: assembly masm dosbox emu8086

我的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 个答案:

答案 0 :(得分:0)

当您收到提示的错误消息时,模拟器正在C:\emu8086\MyBuild中查找文件,因为您没有指定包含驱动器号的绝对路径。

  

DOS文件系统在C:\ emu8086 \ vdrive \ x中模拟(x是驱动器号)

     

如果未指定驱动器号并且未设置当前目录,则C:\ emu8086 \ MyBuild \   默认情况下使用路径。

source