汇编语言:.txt文件放在哪里,以便程序可以读取它? (DOSBox)

问题描述 投票:0回答:1

我需要阅读并显示作业的文本文件。基本上,它需要读取并显示名为“ textfile.txt”的文件中的文本。在EMU8086中,我知道将文件放置在哪里,程序运行正常。但是,在DOSBox中,我不知道将“ textfile.txt”放在哪里。

当我运行该程序时,它什么也没做

.model small
org 100h  
.data
.code
org 100h ;.com memory layout
;****FOR EMU8086: PLACE THE FILE named "textfile.txt" IN C:\EMU8086\vdrive\C***
mov dx, offset file 
mov al,0 
mov ah,3dh
int 21h 
jc terminate
mov bx,ax

mov cx, 99 
mov dx, offset buf
mov ah, 3fh 
int 21h
JZ terminate 


MOV SI, offset buf 
print:
mov al, [SI]
mov ah,0eh 
int 10h
INC SI
CMP BYTE PTR [SI], 0  ;CMP [SI], 0
JNE print 


terminate:

;mov ah, 0 
;int 16h

ret


file db "C:\TASM\textfile.txt",0 ;****PLACE THE FILE IN C:\EMU8086\vdrive\C***
buf db 99 dup(0)
counter db 0



end    

[当我使用EMU8086时,我将.txt文件放置在C:\EMU8086\vdrive\C目录中。在上面的代码中,我将.txt文件放置在C:\TASM目录中,但它不起作用。要注意的是,此代码也在C:\TASM中。我应该将.txt文件放在哪里才能在DOSBox中运行该程序?

assembly tasm dosbox emu8086
1个回答
2
投票

DOSBox默认情况下不知道驱动器C:。您可以将其安装到任何物理路径。在DOSBox提示符下输入:

mount C C:\EMU8086\vdrive\C

现在,文件位于EMU8086和DOSBox的相同位置。要找到TASM,我建议:

mount T C:\TASM
path T:\BIN;

要找到EMU8086并通过PATH编译代码:

mount E C:\EMU80856
path E:\MyBuild;

DOSBox在E:\ MySource中找到源代码。

您可以使用dosbox-0.74.conf自动执行这些步骤。将其加载到文本编辑器中,然后移至[autoexec]部分。插入上面的行:

...
[autoexec]
# Lines in this section will be run at startup.
# You can put your MOUNT lines here.

path T:\BIN;E:\MyBuild
mount C C:\EMU8086\vdrive\C
mount E C:\EMU8086
mount T C:\TASM
...

这些命令将在DOSBox的每次启动时执行。

您的代码不适用于TASM。这将工作:

.model tiny
.code
org 100h
start:

mov dx, offset file
mov al,0
mov ah,3dh
int 21h
jc terminate
mov bx,ax

mov cx, 99
mov dx, offset buf
mov ah, 3fh
int 21h
JZ terminate


MOV SI, offset buf
print:
mov al, [SI]
mov ah,0eh
int 10h
INC SI
CMP BYTE PTR [SI], 0  ;CMP [SI], 0
JNE print

terminate:

mov ax, 4C00h
int 21h

file db "C:\textfile.txt",0 ;****PLACE THE FILE IN C:\EMU8086\vdrive\C***
buf db 99 dup(0)
counter db 0

end start

使用它构建

e:
cd \mysource
tasm mycode.asm
tlink /t mycode.obj
© www.soinside.com 2019 - 2024. All rights reserved.