news 2026/6/6 17:01:19

DOXBOX(DOSBox)使用教程:在 DOSBox 里编译并运行 ASM(MASM + LINK)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
DOXBOX(DOSBox)使用教程:在 DOSBox 里编译并运行 ASM(MASM + LINK)

文章目录

  • DOXBOX(DOSBox)使用教程:在 DOSBox 里编译并运行 ASM(MASM + LINK)
    • 一、我这篇文章要解决什么问题?
    • 二、准备工作(目录与文件放置)
      • 2.1 下载与解压(示意)
    • 三、关键配置:修改 dosbox.conf(映射 D 盘)
      • 3.1 找到配置文件路径
      • 3.2 在配置文件末尾追加两行(非常重要)
    • 四、启动 DOSBox,验证盘符是否映射成功
    • 五、编写第一个 ASM:Hello World
    • 六、编译(MASM):把 .ASM 变成 .OBJ
      • 6.1 判断是否编译成功
    • 七、链接(LINK):把 .OBJ 变成 .EXE
    • 八、运行:执行 hello.exe
    • 九、流程图(mermaid 一图看懂)
    • 十、常见问题排雷(我最常遇到的)
      • 10.1 DOSBox 里提示 “Illegal command / 找不到 masm”
      • 10.2 `mount d d:\masm` 映射失败
      • 10.3 编译 Severe Errors 不为 0
    • ✅ 总结

DOXBOX(DOSBox)使用教程:在 DOSBox 里编译并运行 ASM(MASM + LINK)

⚠️免责声明:本文仅用于学习与研究(汇编/DOS 环境实践)。请勿用于任何非法用途或破坏性行为。
注意:环境配置错误可能导致“找不到命令/无法映射盘符/编译失败”等问题,请按步骤操作。


一、我这篇文章要解决什么问题?

在 Win10/Win11 的 64 位系统里,想跑16 位汇编(ASM),很多同学会卡在两个点:

  • 没有真正的 DOS 环境(直接运行 MASM 会报错)
  • 文件路径/盘符映射不对(DOSBox 里找不到你的代码)

所以我用DOSBox + MASM + LINK搭建一套“能编译、能链接、能运行”的最小闭环 ✅
最终目标:在 DOSBox 内运行hello.exe,输出hello world


二、准备工作(目录与文件放置)

我建议把汇编工具统一放到一个目录,例如:

  • D:\masm(MASM.EXE、LINK.EXE、你的 .asm 文件都放这里)

小提示:路径尽量用纯英文(不要中文、不要空格),能少踩很多坑。

2.1 下载与解压(示意)


三、关键配置:修改 dosbox.conf(映射 D 盘)

这一步是全文最关键的地方:把 Windows 的D:\masm映射成 DOSBox 里的 D 盘。

3.1 找到配置文件路径

配置文件一般在(不同用户名不一样):

  • C:\Users\<你的用户名>\AppData\Local\DOSBox\dosbox-0.74-3.conf

3.2 在配置文件末尾追加两行(非常重要)

在文件最后一行添加:

mount d d:\masm d:
  • mount d d:\masm:把 Windows 的D:\masm映射成 DOSBox 的D:
  • d::启动后自动切换到 D 盘,省得每次手输

注意:如果你目录不是D:\masm,这里就必须改成你自己的真实路径,否则一定失败。


四、启动 DOSBox,验证盘符是否映射成功

启动 DOSBox 后,输入d:(或你已经在 conf 里写了 d:,就会自动切换),然后dir看看文件是否出现:

看到 D 盘里有 MASM/LINK 等文件,就说明映射成功 ✅


五、编写第一个 ASM:Hello World

我在D:\masm里新建一个文本文件(比如hello.asm),内容如下:

data segment tab db 'hello world$' data ends code segment assume cs:code, ds:data start: mov ax, data mov ds, ax lea dx, tab mov ah, 9h int 21h mov ah, 4ch int 21h code ends end start

提示:字符串结尾$是 DOS 里int 21h / ah=09h的结束标记,不加会乱输出。


六、编译(MASM):把 .ASM 变成 .OBJ

在 DOSBox 中进入D:后,执行:

masm hello.asm

通常会出现几个提示(OBJ 文件名、LIST 文件名等),我这里直接按回车使用默认值即可(有的情况需要连按几次回车)。

6.1 判断是否编译成功

编译结果里如果显示:

  • Warning Errors : 0
  • Severe Errors : 0

就代表编译成功 ✅核心判断:只要 Severe Errors 不是 0,就先别往下走。


七、链接(LINK):把 .OBJ 变成 .EXE

继续输入:

link hello.obj

同样可能会提示输出文件名,我继续按回车用默认值。


八、运行:执行 hello.exe

最后直接运行:

hello.exe

如果屏幕输出hello world,恭喜你闭环完成 ✅


九、流程图(mermaid 一图看懂)

准备工具
DOSBox + MASM + LINK

修改 dosbox.conf
mount d d:\masm

启动 DOSBox
验证 D: 映射成功

编写 hello.asm

MASM 编译
hello.asm -> hello.obj

LINK 链接
hello.obj -> hello.exe

运行 hello.exe
输出 hello world


十、常见问题排雷(我最常遇到的)

10.1 DOSBox 里提示 “Illegal command / 找不到 masm”

  • 说明你当前盘符目录里没有MASM.EXE
  • 解决:先确认D:\masm里确实有工具,再确认 conf 的 mount 路径正确

10.2mount d d:\masm映射失败

  • 路径写错 / 目录不存在 / 有中文空格
  • 建议:把目录改成纯英文路径(例如D:\masm

10.3 编译 Severe Errors 不为 0

  • 先看报错行号(MASM 会提示)
  • 常见是:段声明不规范、label 写错、文件后缀不对

✅ 总结

到这里,我已经用DOSBox + MASM + LINK在 64 位 Windows 上搭建完成了一个可用的 ASM 编译运行环境:

  • 配置 conf 映射盘符
  • 写 asm -> masm 编译 -> link 链接 -> exe 运行
  • 任何报错先别急,90% 都是路径/盘符/文件名问题

🔝 返回顶部

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/4 19:00:24

石头扫地机器人HomeAssistant集成:打造全自动智能清洁系统

想要实现扫地机器人的智能自动化控制&#xff0c;摆脱手动操作的繁琐&#xff1f;HomeAssistant的石头扫地机器人集成将彻底改变你的清洁体验&#xff0c;通过本地化控制和丰富的自动化功能&#xff0c;让清洁工作变得更加智能高效。 【免费下载链接】homeassistant-roborock R…

作者头像 李华
网站建设 2026/5/30 16:26:24

Locale Remulator:游戏乱码的终极翻译官

你是否曾经遇到过这样的情况&#xff1a;满怀期待地打开一款日系游戏&#xff0c;却发现所有文字都变成了奇怪的方块和问号&#xff1f;这不是游戏本身的问题&#xff0c;而是语言环境不匹配造成的显示障碍。Locale Remulator就像一位专业的游戏翻译官&#xff0c;能够为每个游…

作者头像 李华
网站建设 2026/5/30 3:38:13

5分钟快速上手:Vue3移动端H5开发模板全解析

5分钟快速上手&#xff1a;Vue3移动端H5开发模板全解析 【免费下载链接】vue3-h5-template &#x1f331; A ready-to-use mobile project base template built with the Vue3, Vant, and Vite. | 基于 Vue3、Vite4、TypeScript/JavaScript、Tailwindcss、Vant4&#xff0c;开箱…

作者头像 李华
网站建设 2026/5/30 22:49:33

Java SAML完整指南:5步实现企业级单点登录系统

Java SAML完整指南&#xff1a;5步实现企业级单点登录系统 【免费下载链接】java-saml 项目地址: https://gitcode.com/gh_mirrors/ja/java-saml 想要为企业Java应用添加专业级安全认证&#xff1f;Java SAML Toolkit正是您需要的完美解决方案&#xff01;这个功能强大…

作者头像 李华