win10 x64下dosbox和masm5.0配置教程

时间:2024-02-21 08:27:34

一、工具下载()

主要工具:

1、dosbox  DOSBox0.74-win32-installer.exe(32位)

下载地址:

http://www.dosbox.com/download.php?main=1
http://sourceforge.net/projects/dosbox/files/

附上某盘地址:https://pan.baidu.com/s/1vgVBvP2RfWjLALpCIyJ7NA

2、masm 5.0

下载地址:

http://www.x86asm.com/download/tool/masm/masm500.zip

附上某盘地址:https://pan.baidu.com/s/1Yw7vBfjU-GiucwQY08QefQ

二、安装

1、dosbox  DOSBox0.74-win32-installer.exe

安装地址填写默认的地址即可

默认安装目录是: 32位 C:\Program Files\DOSBox-0.74  或者 64位  C:\Program Files (x86)\DOSBox-0.74

2、masm 5.0 安装

 解压出来并在c盘下建立一个masm文件夹放进去,当然也可以放在其他盘

这时发现里面只有

    c:\masm\masm.exe  c:\masm\link.exe   c:\masm\lib.exe   c:\masm\cref.exe 

我们还要添加另外两个文件

debug.exe 用于调试

ml.bat简化操作 c:\masm\ml.bat 使用方式:  ml name (直接汇编文件名,不加后缀)

//////////////////////////////////////////////

masm文件夹内至少要包含这4个文件:masm.exe, link.exe, debug.exe, exe2bin.exe。其中:

masm.exe:汇编程序,用于汇编源程序(.asm),得到目标程序(.obj);

link.exe:连接程序,用于连接目标程序,得到可执行程序(.exe);

debug.exe:调试程序,用于调试可执行程序。

还可以下载其它的程序加进去
///////////////////////////////////////////////////////////

然后文件夹masm下的文件夹里面

 

三、配置

dosbox
找到dosbox的配置文件DOSBox 0.74 Options.bat

可以通过右击快捷方式打开文件所在位置

然后双击打开

拉至文件末尾找到 [autoexec] 

添加以下内容: (比如我的汇编文件都放在d:\masmcode (暂且称作 2号目录) (注意:此目录可改为你自己选定的,但目录名不可超过8个字符,也不可为中文))

::双冒号是注释作用
::mount 挂载真实机器的路径到dosbox里面成为逻辑盘符
::举例: mount c: d:\a\b\c
::挂载真实机器的路径d:\a\b\c到dosbox里成为c:盘
::在dosbox下对C:盘的操作等于对真实机器路径d:\a\b\c的操作
::=======================================
mount c: c:\
::真实机器的路径C:\ 挂载成 dosbox里C:盘
mount d: d:\
::真实机器的路径D:\ 挂载成 dosbox里D:盘
path c:\masm
::设置dosbox下环境变量PATH,可执行命令在当前目录搜索不到时会从这个目录下找
::比如当前目录是D:\输入masm.exe,找不到时,会看看c:\masm目录下有没有masm.exe
::(注意:此目录是上面的1号目录,如果更改过,请替换成你自己的)
d:
::切换到dosbox下的D:盘
cd d:\masmcode
::切换到dosbox下的源代码目录
::(注意:此目录是上面的2号目录,如果更改过,请替换成你自己的)
cls
::清屏

::=======================================

添加后的配置文件

 

四、测试

 1)运行DOSBOX,在命令符C:\>下输入命令:EDIT 文件名.asm,启动EDIT.EXE进入代码编辑状态,并输入如下样例程序:

code segment
assume cs:code
start:
mov ax,5h
mov bx,6h
add ax,bx
mov ah,4ch ; 调用DOS的4C号功能
int 21h ; 退出DEBUG状态,返回DOS
code ends
end start

 2)保存文件后返回DOSBOX的命令行,输入命令:MASM 文件名.asm,生成目标文件文件名.OBJ(生成过程中可以修改目标文件名,直接回车可保持默认目标文件名)。

 

     注意:此时可能生成三个文件:*.obj、*.lst和*.crf文件(Windows10 x64系统可能只会生成*.obj文件)。其中,列表文件*.lst和交叉引用文件非必选,前者是汇编语言汇编的机器语言与汇编语言对照表,可用于调试;后者给出了用户定义的所有符号和对每个符号定义、引用的行号。

     3)输入命令:LINK 文件名.OBJ,链接生成可执行文件文件名.EXE。

 

     注意:由于在上述代码中未定义堆栈段,故在链接时会提示:LINK : warning L4021: no stack segment,因不会影响执行文件的生成,故暂时忽略。

     另外,此时可能生成两个文件:*.exe和*.map文件(Windows10 x64系统可能只会生成*.exe文件)。其中,地址映射文件*.map给出内存地址分配的有关信息。

     4)输入命令:DEBUG 文件名.EXE,在DEBUG的命令提示符“-”出现后开始调试,以下是部分调试命令及截图:

     输入命令:R,查看程序运行前的寄存器组初始值;

   输入命令:U,查看程序反汇编代码。从反汇编代码中可看出,变量会被汇编为直接寻址方式,使用变量在数据段内的有效地址表示。

五、结束