古记事法:Windows 下 16 位汇编环境搭建指南(DOSBox-X 篇)
文章目录
- 参考
- 环境
- DOSBox-X
- WOW
- Windows On Windows 产生的原因
- Windows On Windows 的工作原理
- WOW16 的结束与 WOW64 的未来
- 在现代操作系统中运行 16 位应用程序
- DOSBox-X
- 16 位汇编环境的搭建
- 应用准备
- 挂载
- 自动挂载
- dosbox-x.conf
- 配置工具
参考
| 项目 | 描述 |
|---|---|
| 搜索引擎 | Bing、Google |
| AI 大模型 | 文心一言、通义千问、讯飞星火认知大模型、ChatGPT |
| 汇编语言(第四版) | ISBN: 9787302539414、作者:王爽 |
环境
| 项目 | 描述 |
|---|---|
| DOSBox-X | 2023.09.01(64-bit SDL1) |
| 操作系统 | Windows 10(专业版) |
DOSBox-X
WOW
Windows On Windows(WOW)是 Windows 操作系统中提供的 子系统,该子系统允许在 Windows 上运行 为其他架构的 Windows 编写的应用程序。Windows On Windows 的名字通常后面跟着一个版本号,常使用到的 Windows On Windows 有 WOW(也被称为 WOW16) 与 WOW64,它们分别支持在 32 位 Windows 操作系统中运行 16 位应用程序以及在 64 位 Windows 操作系统中运行 32 位应用程序。
Windows On Windows 产生的原因
- 向后兼容性
微软公司为了保证软件的向后兼容性,即新版本的操作系统仍然可以运行旧版本的软件,创建了WOW。这意味着当用户或企业升级到新版本的Windows时,他们不需要重新购买或重新开发所有的应用程序。 - 降低架构变迁带来的影响
随着计算机硬件的发展,计算机架构从16位迁移到了32位,又从32位迁移到了64位。在这些迁移过程中,为了不失去大量已有的软件资源和保持平滑过渡,WOW 成为了一种解决方案。
Windows On Windows 的工作原理
WOW 创建了一个 运行时环境(计算机程序在其执行期间所需的软件和硬件环境),模拟采用旧架构的 Windows。当一个旧的应用程序尝试访问系统资源或函数时,WOW 会拦截这些请求,并在子系统上提供相应的资源或函数。这使得旧的应用程序 认为 它们正在运行在采用旧架构的 Windows 上。
WOW16 的结束与 WOW64 的未来
随着 16 位应用程序的逐渐减少,对 WOW16 的需求也逐渐减少。自 Windows 7 32 位操作系统后,Windows 操作系统都不再支持 WOW16。
目前,WOW64 仍然是 64 位 Windows 操作系统的重要组成部分,因为大量的 32 位应用程序仍在广泛使用。但与此同时,随着 64 位应用程序的普及,32 位应用程序的数量可能会逐渐减少。但是,至少在可预见的未来,WOW64 仍然是 64 位 Windows 操作系统的一个重要组成部分。
在现代操作系统中运行 16 位应用程序
现代操作系统如 Windows 11 等已经 不再支持直接运行 16 位应用程序了。如果需要在这些操作系统中运行 16 位应用程序则需要使用到 虚拟机 或 模拟器。不过为了一个 16 位应用程序,搭建一个虚拟机还是有点 牛刀小试,毕竟在当下环境中,有价值多是 32 位或 64 位的应用程序。
简便起见,我们将使用模拟器来搭建 16 位汇编环境。

DOSBox-X
DOSBox-X 是一个 开源的 x86 模拟器,主要用于运行 早期操作系统 MS-DOS 中的应用程序。与原始的 DOSBox 相比,DOSBox-X 提供了 更多的特性并对原有缺陷进行了改进,使其 更加适合用于模拟早期的 PC 环境。
如果你希望在不支持 16 位应用程序(如 Debug)的操作系统中使用它们,那么你需要一个模拟器,而 DOSBox-X 就是一个很好的选择。

DOSBox-X 在其官网提供了不同的安装包,如果您需要使用到 DOSBox-X,请前往下载安装。

在 DOSBox-X 官网中,Windows 相关的安装包提供了 XP+ 与 Vista+ 两个版本,这两个版本都提供 64 位与 32 位的应用程序。XP+ 与 Vista+ 两者的区别暂不明确,但 Vista+ 版本的安装包所占用的内存空间更大,所以我选择了 Vista+😎。
在安装 DOSBox-X 时,会有许多选项,如果你不懂如何选择那么使用 默认选项,一路 Next 即可。
16 位汇编环境的搭建
应用准备
在 DOS 和 早期的 Windows 环境 下,开发 16 位汇编程序通常需要一系列工具来编写、编译、链接和调试代码。Edit、MASM、Link 以及 Debug 是 16 位汇编中常使用到的工具,它们为 16 位汇编程序的开发 提供了基本的支持。如下是对这些工具进行的简单介绍:
| 工具 | 描述 |
|---|---|
Edit | Edit 是 MS-DOS 和初期 Windows 系统提供的一个基本文本编辑器,可以用来编写汇编源代码或其他文本文件。 |
MASM (Microsoft Macro Assembler) | MASM 是微软提供的汇编器,用于 将汇编语言源代码转换为机器代码。 |
Link | Link 是一个链接器。当一个项目 由多个汇编或其他语言的源文件组成时,这些文件首先被单独编译成目标文件,然后由链接器将它们链接成一个可执行程序。 |
Debug | Debug 是一个在 MS-DOS 和一些 Windows 系统中提供的命令行工具,用于 诊断程序在运行时产生的错误、异常或意外行为,并据此采取措施来解决问题,以确保程序能够按照预期的方式运行。 |
所需工具我已压缩并上传至 CSDN,如有需要请前往下载。
挂载
DOSBox-X 是一个 x86 模拟器,主要用于运行 MS-DOS 和老旧 Windows 程序。当我们使用 DOSBox-X 或其他 DOSBox 变种时,我们实际上是在创建一个模拟的 MS-DOS 环境,而这个环境 默认是无法直接访问宿主机上的资源的。限制 DOSBox-X 对宿主机文件的直接访问可以防止潜在的恶意软件或误操作导致重要文件被损坏或销毁。
因此,为了在 DOSBox-X 中访问本机的文件或目录,用户需要使用 mount 命令将宿主机的文件夹 挂载 到模拟环境的一个 驱动器 上。例如,为了将宿主机的 C:\Program Files\8086 AssemblyTools 文件夹挂载到 DOSBox-X 中的 D: 驱动器,你可以使用以下命令:
mount D 'C:\Program Files\8086 AssemblyTools'
这样,在 DOSBox-X 中访问 D: 驱动器时,实际上是在访问宿主机的 C:\Program Files\8086 AssemblyTools 文件夹。如需访问 D: 驱动器,请使用如下命令:
D:
注:
- 在命令行中,若文件路径中包含
空格,请使用引号将文件路径进行包裹。 - 请将与
16 位汇编相关的工具存放到一个文件夹中并将其挂载至 DOSBox-X 中。

自动挂载
通过命令行将文件挂载至 DOSBox-X 仅能影响本次开启的 DOSBox-X,在您重新开启 DOSBox-X 后,如果需要访问上一次挂载的文件则需要对其进行重新挂载。
dosbox-x.conf
在 DOSBox-X 的安装路径中存在与其相关的配置文件 dosbox-x.conf,在该文件的末尾存在如下内容:
[autoexec]
# Lines in this section will be run at startup.
# You can put your MOUNT lines here.
[autoexec] 以下的内容除注释外都将 在 DOSBox-X 启动时自动执行,您可以将 挂载宿主机文件 及 进入被挂载驱动器的目录 的命令输入于此。对此,请参考如下示例:
[autoexec]
# Lines in this section will be run at startup.
# You can put your MOUNT lines here.
mount D 'C:\Program Files\8086 AssemblyTools'
D:
保存 dosbox-x.conf 文件,重新启动 DOSBox-X 后,该配置文件即生效。

配置工具
除了通过配置 dosbox-x.conf 配置文件来实现宿主机文件的自动挂载外,您还能够通过 DOSBox-X 提供的配置工具来对配置文件进行修改。

在点击 配置工具 后,将弹出一个弹框。

最后一个按钮 AUTOEXEC.BAT 与配置文件中 dosbox-x.conf 中的 [autoexec] 相对应,您可以通过点击该按钮对配置文件中的 [autoexec] 配置项进行修改。

相关文章:
古记事法:Windows 下 16 位汇编环境搭建指南(DOSBox-X 篇)
文章目录 参考环境DOSBox-XWOWWindows On Windows 产生的原因Windows On Windows 的工作原理WOW16 的结束与 WOW64 的未来 在现代操作系统中运行 16 位应用程序DOSBox-X 16 位汇编环境的搭建应用准备挂载自动挂载dosbox-x.conf配置工具 参考 项目描述搜索引擎Bing、GoogleAI 大…...
云计算基础:理解AWS、Azure和Google Cloud
云计算基础:理解AWS、Azure和Google Cloud 介绍 云计算已经成为现代科技领域的重要驱动力之一。它为企业提供了灵活性、可伸缩性和成本效益,以满足日益增长的计算和存储需求。本文将深入探讨三个主要的云计算提供商:Amazon Web Services (A…...
【数据结构初阶】七、非线性表里的二叉树(堆的实现 -- C语言顺序结构)
相关代码gitee自取: C语言学习日记: 加油努力 (gitee.com) 接上期: 【数据结构初阶】六、线性表中的队列(链式结构实现队列)-CSDN博客 1 . 非线性表里的 树(Tree) 树的概念及结构: 树的概念 树是一种非线性的数据…...
基于SpringBoot的网上超市系统
基于SpringBoot的网上超市系统的设计与实现 开发语言:Java数据库:MySQL技术:SpringBootMyBatis工具:IDEA/Ecilpse、Navicat、Maven 【主要功能】 角色:用户、管理员 管理员:个人中心、用户管理、商品分类…...
在springboot项目中整合Druid
或 1.导入maven坐标 <dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.2.19</version> </dependency>2.在application.properties中配置连接池 spring:datasource:d…...
微信支付费率降低到0.2%,商家收款开户手续费0.6%降低的操作方法
在如今的数字时代,移动支付已成为人们日常生活中必不可少的一部分。微信支付作为国内最受欢迎的移动支付平台,一直致力于为商家和个人提供最便捷、安全的支付方式。如果可以将微信支付将费率降低到仅为0.2%,这无疑给广大商家带来了巨大的利好…...
计算机毕业设计 基于SSM的民宿推荐系统的设计与实现 Java实战项目 附源码+文档+视频讲解
博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…...
【机器学习】训练集/验证集/测试集释疑
文章目录 序言1. 训练集、验证集、测试集是什么2. 为什么需要验证集3. 验证集是必须的吗4. 验证集和测试集上的表现会不同吗5. 如何从Train/Test Set划分Validation Set6. 训练集、验证集和测试集的比例怎么设置7. 模型表现不好时测试集可以反复使用来调整模型吗8. 训练集、验证…...
LCR 120.寻找文件副本
题目来源: leetcode题目,网址:LCR 120. 寻找文件副本 - 力扣(LeetCode) 解题思路: 使用哈希集合判断是否有元素重复出现即可。 解题代码: class Solution {public int findRepeatDocument(…...
代码随想录算法训练营第44天|动态规划:完全背包理论基础、518.零钱兑换II、377. 组合总和 Ⅳ
动态规划:完全背包理论基础 518.零钱兑换II https://leetcode.cn/problems/coin-change-ii/ 用一个二维dp数组 class Solution { public:int change(int amount, vector<int>& coins) {vector<vector<int>> dp(coins.size(), vector<i…...
309.买卖股票的最佳时机含冷冻期【Java】
309. 买卖股票的最佳时机含冷冻期 - 力扣(LeetCode) 给定一个整数数组prices,其中第 prices[i] 表示第 i 天的股票价格 。 设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次…...
React Promise 中断
需求: 上传文件,但是后端接口不支持多文件上传,但是一次性发出很多请求的话如果有100个文件那对后端的压力又太大了在上传的时候还需要有停止上传的按钮 进程: async await 只能做到第一步,但是无法在上传中的时候关…...
1.填空题 进制转换Oct.2023
原题 部分可能会有用处的知识: p p p进制转十进制: 假设有一个 p p p进制数,个位是 a 0 a_0 a0,向高位依次是 a 1 , a 2 , . . . , a n a_1,a_2,...,a_n a1,a2,...,an,向低位依次是 b 1 , b 2 , b 3 , . . . …...
node 解决多版本配置 error:03000086:digital 引起的问题 已解决
在日常后端工作中,难免会安装前端的项目,今天有旧项目需要维护,但是 提示 node版本过高,或者不是长维护版本,部分分享说,加 opensll 过滤能解决,但是 还是不行,索性来这个 底朝天的找…...
前端面试题: js中对比两个对象的值是否相等? for..in 和 for...of的区别?
我去面试的时候会问这个问题, 而且发现不管是初级还是工作一段时间的小伙伴 都会说的不是很清晰 比如第一道题哈: 首先大部分人都会想起来 我们用JSON.stringify() 进行转换,查看两个是否相等 你敢说我下面的对象 值不是想等的吗。 但是你用…...
第十七章:Java连接数据库jdbc(java和myql数据库连接)
1.进入命令行:输入cmd,以管理员身份运行 windowsr 2.登录mysql 3.创建库和表 4.使用Java命令查询数据库操作 添加包 导入包的快捷键 选择第四个 找到包的位置 导入成功 创建java项目 二:连接数据库: 第一步:注册驱动…...
Unity基于种子与地块概率的开放世界2D地图生成
public class BuildingGen : MonoBehaviour {public int[] Building;//存储要生成的地块代码public int[] Probability;//存储概率public double seed;public int width 100;public int height 100;public float noiseScale 0.1f; //噪声缩放倍数private int[,] frequencyM…...
5.Vectors Transformation Rules
在上节,有个问题:向量分量的转换方式 与 新旧基底的转换方式相反 用例子来感受一下, 空间中一向量V,即该空间的一个基底:e1、e2 v e1 e2 现把基底 e1 、 e2 放大两倍。变成 基向量放大了两倍, 但对于…...
聊聊httpclient的CPool
序 本文主要研究一下httpclient的CPool ConnPool org/apache/http/pool/ConnPool.java public interface ConnPool<T, E> {/*** Attempts to lease a connection for the given route and with the given* state from the pool.** param route route of the connecti…...
B2主题优化:WordPress文章每次访问随机增加访问量
老站长都知道,一个新站刚开始创建,内容也不多的时候,用户进来看到文章浏览量要么是0,要么是 个位数,非常影响体验,就会有一种“这个网站没人气,看来不行”的感觉。 即使你的内容做的很好&#x…...
3分钟掌握完全离线的实时语音转文字:TMSpeech让你彻底告别云端依赖
3分钟掌握完全离线的实时语音转文字:TMSpeech让你彻底告别云端依赖 【免费下载链接】TMSpeech 腾讯会议摸鱼工具 项目地址: https://gitcode.com/gh_mirrors/tm/TMSpeech 在数字时代,语音转文字已成为现代办公和学习的高效助手,但你是…...
超净实验室建设公司厂家:如何根据需求选择方案|中南实验室建设
在半导体制造、地质微量元素分析、生物制药等高精度领域,实验环境的洁净度直接影响数据可靠性与产品良率。超净实验室作为核心基础设施,其建设需融合空气动力学、材料科学、自动化控制等多学科技术。 一、超净实验室建设公司厂家的设计规划:…...
流处理优化:提高实时数据处理性能
流处理优化:提高实时数据处理性能 一、流处理优化概述 1.1 流处理优化的定义 流处理优化是指通过优化流处理系统的性能、吞吐量和延迟,提高实时数据处理能力的过程。它涉及优化数据处理管道、资源配置和算法实现。 1.2 流处理优化的价值 低延迟ÿ…...
如何在Windows上快速安装安卓应用:APK Installer终极指南
如何在Windows上快速安装安卓应用:APK Installer终极指南 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 你是否曾经想要在Windows电脑上运行安卓应用&…...
2026毕业季必看!告别求职死循环,这两个高薪赛道让你稳上岸!
家人们谁都没想到,2026年毕业季求职难度直接拉满,堪称历年最难就业季!全国1270万高校毕业生扎堆涌入求职市场,岗位僧多粥少、竞争内卷到极致,无数应届生陷入一模一样的求职困境:精心打磨的简历海投出去&…...
Lumi Diary:基于OpenClaw Skill的本地AI记忆伴侣设计与实践
1. 项目概述:一个住在你设备里的记忆精灵如果你和我一样,对把生活点滴交给云端总有点不放心,但又渴望有一个能懂你、能帮你把碎片记忆编织成故事的伙伴,那么 Lumi Diary 的出现,可能正是时候。这不是又一个需要你手动打…...
数字信号控制器(DSC)在汽车电子中的关键技术解析
1. 数字信号控制器的技术演进与核心定位在嵌入式控制领域,我们正见证着一场处理器架构的静默革命。十年前当我第一次接触到Motorola 56F8300系列芯片时,就意识到这种融合了MCU和DSP特性的混合架构将彻底改变机电控制系统的设计范式。数字信号控制器&…...
AI驱动游戏开发:Godogen自动化流水线全解析
1. 项目概述:当AI成为你的游戏开发合伙人 如果你是一名独立游戏开发者,或者对用Godot引擎做点小玩意儿感兴趣,那你肯定体会过那种感觉:一个绝妙的点子在你脑海里盘旋,但一想到要从零开始搭场景、写脚本、画素材&#x…...
VLC源码深度定制:3大核心模块解析与编译实践
VLC源码深度定制:3大核心模块解析与编译实践 【免费下载链接】vlc VLC media player - All pull requests are ignored, please use MRs on https://code.videolan.org/videolan/vlc 项目地址: https://gitcode.com/gh_mirrors/vl/vlc 你是否曾想过ÿ…...
从需求到开发的全流程
一、流程图二、各阶段拆解🔍第一阶段:需求细化与设计(会前关键)此阶段的目标是产出一份清晰、可评审的PRD初稿。步骤核心动作与目的产出物与实战技巧1. 深度需求调研目的:消化方案,与原始需求方及关键用户深…...
