汇编语言编程环境搭建(DOSBox-0.74-3 + RadASM 2.2.1.6 + MASM32)
备注:当时的知乎 ID 为 衍格,原文发布在 知乎
更新日志
- 2025.03.17:增补了对于 DOSBox 中调试(debug)模式的相关操作
- 2025.03.17:增补了关于 DOSBox 分支版本 DOSBox-X 的相关介绍
前言
笔者在上微机原理课搭建汇编语言(Assembly)编程环境时踩了很多坑,在此写下自己的探索经验以供大家参考。这是笔者第一次写经验分享帖,如果对你有帮助,可以留下一个赞鼓励一下,希望你能在这篇教程中有所收获。
记号说明:
- ./RadASM:RadASM 的安装目录
- ./DOSBox:DOSBox 的安装目录
- ./masm32:MASM32 SDK 的安装目录,注意:在 ./RadASM 中有一个名为 Masm 的文件夹,为避免混淆,后者将使用 ./RadASM/Masm 指代。
一、准备工作:软件包下载与安装
1. RadASM:RadASM assembler IDE
其中必须下载 RadASM 软件本体(第 1 个)和 RadASM 汇编包(第 2 个,即 RadASM Assembly programming),视自身需要下载语言支持包(第 4 个,即 RadASM language pack,软件界面原生支持中文)和帮助文档(第 5 个,即 RadASM help file)。
由于软件包很小,所以不用担心网络问题导致下载耗时太长。
接下来我们开始安装 RadASM,不建议在安装路径中出现中文。首先解压软件本体 RadASM.zip ,然后将汇编包 Assembly.zip 解压后的文件全部复制到 ./RadASM 中即可。
如果下载了语言包 RadLNG.zip 和帮助文档 RAHelp.zip,解压后会各自得到一个文件夹 Language 和 Help,将这两个文件夹复制到 ./RadASM 中即可。
2. DOSBox:DOSBox, an x86 emulator with DOS
下载好 .exe 后双击按指引安装即可,不建议在安装路径中出现中文。
3. MASM:Download The MASM32 SDK
点击图中红圈位置的绿色文本即可下载,下载后得到一个名为 install.exe 的文件,将该文件放进 ./RadASM 中。双击 install.exe,选择安装路径(这里的安装路径不能自由指定,需要记住自己安装在哪一个盘中),一路点击 OK,等待安装完成,安装期间尽量不要切换窗口,否则可能导致安装卡死。
安装完成后,如果没有特殊需求,建议将 ./masm32 移动到 ./RadASM 下,即 ./RadASM/masm32,方便后续操作。
4. MASM缺失文件:DOSBox_MASM/masm at master · xDarkLemon/DOSBox_MASM · GitHub
共4个文件:MASM.EXE, LINK.EXE, debug.exe, exe2bin.exe。这里主要用到 debug.exe,用于补全之后安装的 masm32 的调试器。
*二、启用 RadASM 的中文语言包(第一步中的 Language pack)
两个简体中文方案可根据需要自行选择。但此时只是软件界面为中文,程序本身还不能包含中文字符,可能出现乱码,解决方法如下:
配置后即可在程序中输入中文注释。
三、RadASM的配置
1. 修改 ./RadASM/masm.ini
进入 ./RadASM,用记事本打开配置文件 masm.ini,按 Ctrl+F 查找 [Dos App],在下图红框内部分输入DOSBox.exe 的绝对路径。
绝对路径获取方法如下,在末尾加上 DosBox.exe (该文件夹中唯一一个 .exe 文件的名称)即可。
2. 在 RadASM 中关联 masm32
在 选项 - 编程语言 中打开如下界面,选择 masm.ini (即刚才加入 DOSBox 路径的文件)并点击”打开”即可。
效果:
接下来在 RadASM 中设置 masm32 的路径:
下图中,红圈内为 masm32 的安装目录(绝对路径),绿圈表明 $A 指代 masm32 的安装目录 ./masm32,蓝圈内特别注意对应路径下的bin, help, include, lib的字母大小写问题!!!
3. 配置系统环境变量
在开始菜单旁边的搜索栏中输入”环境变量”,选择”编辑系统环境变量”,点击”环境变量”。
在用户变量中加入键值对 include : ./masm32/include(绝对路径,下同),lib: ./masm32/lib,path:./masm32。如果对应的变量已存在,双击进入后点击新建,在后面附加即可。
四、补全 masm32 和 DOSBox 的执行环境与调试环境
这一步很简单,首先将第一步得到的 debug.exe 放进 ./masm32/bin 中,然后将 ./masm32/bin 中的 link16.exe 复制粘贴到该目录,并将副本改名为 DOSLNK.EXE 即可,此处不再附图。
2025.03.17 更新
修改 DOSBox 的配置文件(双击 ./DOSBox/DOSBox 0.74-3 Options.bat 打开),在该文件末尾加入如下内容(个人建议将 debug.exe 放到 ./DOSBox 中,以免之后需要调整时找不到合适的路径):
MOUNT D 这里填debug.exe所在的目录路径
此处的 D 可以换成除了 A, B, C, Z 外的其他盘符,尤其是不能用 C 和 Z,因为用 C 会导致 RadASM 调试时无法进入当前文件,用 Z 会和 DOSBox 本身的工作目录冲突。
*五、调整 DOSBox 的显示窗口参数
本步不是必要的,只是笔者在使用的时候感觉 DOSBox 的字体太小了,索性再去找些资料改一下界面大小。
打开文件夹 C:\Users\此处替换为自己的计算机名称\AppData (该文件夹默认隐藏)\Local\DOSBox,里面有一个名为 dosbox-版本号.conf 的配置文件,用记事本(或VS Code)打开后找到 windowresolution,将其修改为适合自己电脑屏幕的分辨率即可,注意图中的 x 是字母 X 的小写,不是Unicode中的乘号!
如有需要,可将 output 从 surface 改为 opengl。
六、测试环境搭建是否成功
示例程序:(来源:《微机原理、汇编语言与接口技术》人民邮电出版社,第 4 章;稍作修改)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
DATA SEGMENT
STRING DB 'Hello world!', 0DH, 0AH, '$'
DATA ENDS
STACK SEGMENT STACK
DB 128 DUP (?)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA, SS:STACK
BEGIN: MOV AX, DATA
MOV DS, AX
MOV AH, 09H
LEA DX, STRING
INT 21H
MOV AH, 4CH
INT 21H
CODE ENDS
END BEGIN
预期行为:打开 DOSBox 的命令行窗口后,打印 Hello, world!
新建工程并选择 Dos App,指定工程名称后复制上述代码到代码框内,并按 Ctrl+F5 一次性进行编译,连接与运行。
下图所示即为大功告成。
若需要进入调试模式,在可输入如下命令:
D:
debug C:\HELLO.EXE
效果如下图:
之后即可根据调试模式下的指令使用方法进行愉快的调试了()
七、总结
至此汇编环境的搭建大功告成,享受汇编之旅吧!
如果感觉 DOSBox 的功能不足以满足自己的需要,比如需要以 TTF 形式显示终端内容、更好的简体中文/繁体中文支持、运行时级别的CPU型号与DOS版本切换,可以考虑将 DOSBox 更换为其分支版本 DOSBox-X。该项目最近一次更新为 2025/02/01,其使用方法和 DOSBox 基本相同,可以获得更好的体验。
DOSBox-X 项目地址:joncampbell123/dosbox-x: DOSBox-X fork of the DOSBox project
官网介绍:DOSBox-X - Accurate DOS emulation for Windows, Linux, macOS, and DOS
如果需要 DOSBox-X 的教程,可以在评论区催更~
八、参考文章
【汇编语言】汇编实验IDE(集成开发环境):RadASM的安装和使用说明-CSDN博客
RadASM原版下载、汉化、配置、解决中文乱码傻瓜式教程-CSDN博客
radasm的汇编语言操作入门 - nyc1893 - 博客园
dosbox下载并配置masm环境变量的方法_dosbox link、masm下载-CSDN博客
调整DOSBox的窗口大小:跨过三连坑_windowresolution-CSDN博客
汇编语言消除连接程序时的警告:No stack segment_no stack segment 怎么解决-CSDN博客























