古记事法:Windows 下 16 位汇编环境搭建指南(DOSBox-X 篇)

news2024/10/6 8:21:46

文章目录

  • 参考
  • 环境
  • DOSBox-X
      • WOW
          • Windows On Windows 产生的原因
          • Windows On Windows 的工作原理
          • WOW16 的结束与 WOW64 的未来
      • 在现代操作系统中运行 16 位应用程序
      • DOSBox-X
  • 16 位汇编环境的搭建
      • 应用准备
      • 挂载
      • 自动挂载
          • dosbox-x.conf
          • 配置工具

参考

项目描述
搜索引擎BingGoogle
AI 大模型文心一言通义千问讯飞星火认知大模型ChatGPT
汇编语言(第四版)ISBN: 9787302539414作者:王爽

环境

项目描述
DOSBox-X2023.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 产生的原因
  1. 向后兼容性
    微软公司为了保证软件的向后兼容性,即 新版本的操作系统仍然可以运行旧版本的软件,创建了 WOW。这意味着当用户或企业升级到新版本的 Windows 时,他们 不需要重新购买或重新开发所有的应用程序
  2. 降低架构变迁带来的影响
    随着计算机硬件的发展,计算机架构从 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 位汇编程序通常需要一系列工具来编写、编译、链接和调试代码。EditMASMLink 以及 Debug 是 16 位汇编中常使用到的工具,它们为 16 位汇编程序的开发 提供了基本的支持。如下是对这些工具进行的简单介绍:

工具描述
EditEdit 是 MS-DOS 和初期 Windows 系统提供的一个基本文本编辑器,可以用来编写汇编源代码或其他文本文件。
MASM (Microsoft Macro Assembler) MASM 是微软提供的汇编器,用于 将汇编语言源代码转换为机器代码
LinkLink 是一个链接器。当一个项目 由多个汇编或其他语言的源文件组成时,这些文件首先被单独编译成目标文件,然后由链接器将它们链接成一个可执行程序。
DebugDebug 是一个在 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:

注:

  1. 在命令行中,若文件路径中包含空格,请使用 引号 将文件路径进行包裹。
  2. 请将与 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] 配置项进行修改。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1057457.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2024双非网安捡漏华五0854经验分享

个人情况 本科:西南双非网安(转专业er)rk:绩点rk2/81,综排rk1竞赛:计设国一,互联网加省金,三创赛省一等,发明专利一座,无果酱和社会奖学金科研:无…

大选择核网络在遥感目标检测中的应用

摘要 论文链接:https://arxiv.org/pdf/2303.09030.pdf 最近关于遥感目标检测的研究主要集中在改进有向边界框的表示,但忽略了遥感场景中呈现的独特先验知识。这种先验知识很有用,因为如果没有参考足够远的上下文,可能会错误地检测…

【推荐系统】多任务学习模型

介绍一些多任务学习模型了解是如何处理多任务分支的。 ESSM, Entire Space Multi-Task Model 阿里提出的ESSM全称Entire Space Multi-Task Model,全样本空间的多任务模型,有效地解决了CVR建模(转化率预估)中存在的两个非常重要…

d3dx9_42.dll丢失怎么解决?有什么方法解决d3dx9_42.dll丢失问题

四步解决电脑d3dx9_42.dll文件丢失的问题! 电脑已经成为我们生活和工作中不可或缺的一部分。然而,电脑故障问题却时常困扰着我们。其中,丢失d3dx9_42.dll文件是许多用户经常遇到的问题。这个问题可能会导致你无法正常运行一些应用程序或者游戏…

Linux下的管道通信

文章目录 无名管道通信有名管道通信(FIFO) 无名管道通信 无名管道只能用于具有亲缘关系的进程之间的通信,即父子进程或者兄弟进程之间,它是一个半双工的通信模式,具有固定的读端和写端。管道也可以看成是一种特殊的文…

【高强度聚焦超声模拟器】模拟分层介质中的高强度聚焦超声波束和加热效应(Matlab代码)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

调用gethostbyname实现域名解析(附源码)

VC常用功能开发汇总(专栏文章列表,欢迎订阅,持续更新...)https://blog.csdn.net/chenlycly/article/details/124272585C软件异常排查从入门到精通系列教程(专栏文章列表,欢迎订阅,持续更新...&a…

手机建模教程 | 如何从易模App中导出模型?有哪些格式?含贴图吗?

很多小伙伴使用易模App是为了能快速地将已有实物的物体“变成”三维模型后转到自己习惯的3D软件中去编辑,于是,大家都关心模型能否导出,以及导出格式有没有自己想要的? 博雅仔告诉大家,当然可以导出! 在导出…

阶乘分解质因数

n!中因子p的个数为 枚举n范围内的质数即可 #include<bits/stdc.h> #define IOS ios::sync_with_stdio(0);cin.tie(0);cout.tie(0); #define endl \nusing namespace std;typedef pair<int, int> PII; typedef long long ll; typedef long double ld;const int N …

手机自动直播系统源码交付与代理加盟注意事项解析!

随着直播行业的不断发展&#xff0c;手机自动直播已经成为了人们生活中不可或缺的一部分。手机无人直播软件成了香饽饽&#xff0c;各类手机实景直播APP大批量涌现。因为创业和技术门槛低&#xff0c;市场需求高&#xff0c;所以成了最火热创业赛道。那么如果是不懂技术的人群&…

【DRAM存储器九】SDRAM介绍-read、write、Precharge、DQM、Power down、Clock Suspend命令

&#x1f449;个人主页&#xff1a;highman110 &#x1f449;作者简介&#xff1a;一名硬件工程师&#xff0c;持续学习&#xff0c;不断记录&#xff0c;保持思考&#xff0c;输出干货内容 参考资料&#xff1a;《镁光SDRAM数据手册》、《PC SDRAM specification》 目录…

vue中 css scoped原理

Vue中css的逻辑是先放子组件&#xff0c;然后放父组件&#xff0c;所以同样的css类名&#xff0c;子组件会被父组件覆盖 html 如下 子被父覆盖 scoped是通过给组件加hash值&#xff0c;锁定组件。 父子组件均scoped的情况下&#xff0c;子仍会覆盖 还是被覆盖了 如何避免被…

1004. 最大连续1的个数III(滑动窗口)

一、题目 1004. 最大连续1的个数 III - 力扣&#xff08;LeetCode&#xff09; 二、代码 class Solution { public:int longestOnes(vector<int>& nums, int k) {int mark0;//标记0的个数int MaxLength0;for(int left0,right0;right<nums.size();right){if(nums…

串口数据包收发

数据包 把属于同一批的数据进行打包和分割&#xff0c;方便接收方进行识别 HEX数据包 思路&#xff1a;一个数据规定四个字节&#xff0c;以0xFF为包头&#xff0c;0xFE为包尾&#xff0c;当检测到0xFF时&#xff0c;接下来四个数据就是数据&#xff0c;接收到0xFE时&#x…

计算机视觉——飞桨深度学习实战-图像分类算法原理与实战

基础理论&#xff1a; 图像分类是深度学习在视觉领域第一个取得突破性成果的任务。本章首先介绍了图像分类任务的发展历程与评价指标。然后分为三个角度分别介绍了在图像分类领域具有重要地位的三种模型。第一种是基于残差网络的模型&#xff0c;本章重点介绍了ResNet、DenseN…

PCB铺铜连接方式

在铺铜前先把栅格吸附关闭铺铜会流畅很多 在嘉立创专业版中&#xff0c;默认铺铜方式是这样 改变铺铜规则为直连 效果如下

基于SpringBoot的补习班线上报名系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09;有保障的售后福利 代码参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作…

【小尘送书-第六期】《巧用ChatGPT轻松玩转新媒体运营》AI赋能运营全流程,帮你弯道超车、轻松攀登运营之巅

大家好&#xff0c;我是小尘&#xff0c;欢迎你的关注&#xff01;大家可以一起交流学习&#xff01;欢迎大家在CSDN后台私信我&#xff01;一起讨论学习&#xff0c;讨论如何找到满意的工作&#xff01; &#x1f468;‍&#x1f4bb;博主主页&#xff1a;小尘要自信 &#x1…

开发中的前端和后端

一、引言 前端和后端是Web开发中两个不同的领域。 前端开发主要负责实现用户界面的设计和功能&#xff0c;包括网页的布局、样式和交互效果。前端开发使用HTML、CSS和JavaScript等技术来构建用户在浏览器中直接与之交互的界面。前端开发人员需要关注网页的可视化效果和用户体验…

【密评】商用密码应用安全性评估从业人员考核题库(三)

商用密码应用安全性评估从业人员考核题库&#xff08;三&#xff09; 国密局给的参考题库5000道只是基础题&#xff0c;后续更新完5000还会继续更其他高质量题库&#xff0c;持续学习&#xff0c;共同进步。 501 多项选择题 《个人信息保护法》要求个人信息处理者应当采取哪些…