汇编语言文件IO大致用法与内存读写类似。但如果是在dosbox里面,需要改一些路径方面的东西。
我这里使用的是masm,里面是配好了dosbox之类的。
1、打开masm文件夹,找到doxbox.conf,打开
2、找到[autoexec]。加上 mount [挂载目的盘] [实际目录]
这里假设我要将F盘dos文件夹挂载到dos虚拟机里的D盘,那么就这么写
mount d f://dos
然后再返回c盘 加上:
mount c .
c:
其实这些就是一个执行路径的问题,dosbox是个虚拟机,汇编程序在虚拟机里执行,你如果不挂载,它怎么可能找得到你要读的文件?
(如果不行的话,删掉[autoexec]里的一些东西,只剩下这些
[autoexec]
# Lines in this section will be run at startup.
echo off
cls
mount d f://dos
mount c .
c:)
路径改好之后,读写文件就比较简单了。
file<span style="white-space: pre;"> </span> db 'D:/2.txt' , 0 //定义文件路径
mov dx , offset file//打开文件
mov al , 0
mov ah , 3dh
int 21h
mov si,offset stu