0

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あるべき場所にあります。の MASM でコンパイルすると、dosbox正しく動作します。どこに問題があるのか​​ わかりません。誰かがそれを手伝ってくれますか?

4

1 に答える 1

0

C:\emu8086\MyBuildエラー メッセージからヒントが得られたように、ドライブ文字を含む絶対パスを指定しなかったため、エミュレータは でファイルを探しています。

DOS ファイル システムは C:\emu8086\vdrive\x (x はドライブ文字) でエミュレートされます。

ドライブ文字が指定されておらず、現在のディレクトリが設定されていない場合、デフォルトで C:\emu8086\MyBuild\ パスが使用されます。

ソース

于 2016-05-29T18:18:04.523 に答える