【微机】DOSBox在windows上的安装和masm的配置

news2024/11/14 22:33:04

本文首发于 ❄️慕雪的寒舍

最近学校学习微型计算机原理与接口技术,需要用到DOSBox来模拟DOS环境进行汇编编程的学习。

本文记录了如何在windows11/10上安装DOSBox0.74并配置masm5

1.安装

这两个软件我打包上传到了百度云盘。放心,加起来也就2mb,下载应该不会很久

链接: https://pan.baidu.com/s/1vjbSL7iwP8WpMVA9K505ZA
提取码: kr4x

1.1 DOSBox

点击DOSBox0.74的安装包,无脑下一步安装即可

image-20231017015458406

安装出来的图标如下

image-20231017015529621

1.2 masm5

找一个空的文件夹,文件路径中不能包含空格、特殊字符和中文,将masm5.zip中的文件全部解压到这个文件夹中,如下图

image-20231017015700958

随后修改DOSBox软件的配置文件,右键桌面上Dosbox软件的快捷图标,选择打开文件所在位置找到DOSBox软件的安装路径,点击DOSBox 0.74 Options.bat文件,稍等片刻,会以记事本的方式打开配置文件。

image-20231017015801923

拉到配置文件最底下,新增如下配置。你只需要修改D:\GAME\masm为你的masm5文件的解压目录就行了。这个文件路径中不能有空格,也不能有特殊字符和中文!

MOUNT C D:\GAME\masm
path=%path%; \masm
C: 
cd \asm

配置完成后,启动DOSbox,查看masm命令是否能正常使用。如图所示,没有报错masm命令不存在,那么就是配置好了。

image-20231017020002774

2.修改DOSBox窗口大小

默认情况下DOSBox的命令行窗口是非常非常非常小的,我们需要将其改大。同样是修改DOSBox的配置文件,如何打开配置文件参考上文。

按下图所示修改

image-20231017020347782

请注意,这里的1280和1080中间的是大写的X,并不是乘号

windowresolution=1280X1080
output=opengl

修改了之后保存,再重新打开DOSBox,界面就应该会变大了。如果你觉得还是小了,可以修改这里的分辨率,继续让他变大一点。

3.编译一个汇编程序

用下面最简单的汇编程序做测试,将如下内容写入到test.asm中,并放入和masm的同一目录下(必须要是同一目录)

CODE SEGMENT ;USE16
     ASSUME CS:CODE
BEG: MOV DL,'H'
     MOV AH, 2 ; 调用2号DOS系统调用输出字符到屏幕上
     INT 21H
     MOV AH, 4CH
     INT 21H
CODE  ENDS
        END BEG

打开DOSBox,输入如下命令

masm test.asm
link test.obj

输出如下图所示,第一个命令的作用是编译源文件(注意看有没有编译报错);第二个命令的作用是链接obj文件,最终会弹出来一个警告,不用管他。

image-20231017020903839

最终执行test,成功输出字符H到终端上。

image-20231017020946832

能走到这一步,就代表你的masm基本环境已经配置好了。可以用来编译运行汇编代码了

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

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

相关文章

【多线程】死锁

🥰🥰🥰来都来了,不妨点个关注叭! 👉博客主页:欢迎各位大佬!👈 文章目录 1. 死锁的三种情况1.1 一个线程一把锁(同一个线程给同一个对象加两次锁的情况)1.2 两…

Save OpenAI response in Azure function to Blob storage

题意:将 OpenAI 的响应保存在 Azure 函数中到 Blob 存储 问题背景: I used blob trigger template to create an Azure function that is triggered by new file updated in Azure blob storage. I am using python v2 to create Azure function in VSc…

SAP ABAP任意表数据查询+快速下载工具

背景: 项目上业务顾问有时候需要下载标准表大量的数据到Excel进行一些比对,但是标准SE16N,SE16的下载电子表格功能在遇到大批量数据的时候会非常慢,于是抽空写了个通用的查询下载工具,可以快速的下载数据。 工具界面&…

Linux - Linux安装部署xxl-job

一、下载源码 xxl-job源码地址: https://github.com/xuxueli/xxl-job 2.4.2版本为例:https://github.com/xuxueli/xxl-job/archive/refs/tags/2.4.1.tar.gz xxl-job文档地址: 分布式任务调度平台XXL-JOB 二、安装依赖环境 因为需要…

Go语言中的RPC协议原理解析

Go语言中的RPC协议原理解析 在分布式系统中,不同的服务或组件通常运行在不同的计算机或进程上。为了实现这些服务之间的通信,我们可以使用RPC(Remote Procedure Call,远程过程调用)协议。RPC允许我们像调用本地函数一…

【区块链 + 人才服务】FISCO BCOS 高校实训和管理平台 | FISCO BCOS应用案例

深圳市火链文化传播有限公司建设部署 FISCO BCOS 高校实训和管理平台,这是一条多领域覆盖的联盟链,以高 校 政府教育部门 合作企业共同授权成为联盟链节点,实现在政府指导监管下,多行业扩展、多机构参与、多 平台共存的联盟链模…

SparseDrive - 清华地平线开源的e2e的框架

清华地平线合作开发的e2e的框架 SparseDrive资源 论文 https://arxiv.org/pdf/2405.19620 git https://github.com/swc-17/SparseDrive 个人觉得该文章厉害的地方 纯sparse mapping, 3d detection方案, 用的检测头sparse4D V3 sparsev1v2v3基本一致,m…

秒懂:父子进程

1.概念 在操作系统中,当一个进程(称为父进程)创建另一个新进程(称为子进程)时,父子进程之间建立了一种特殊的关系。 2.创建父子进程的方法 2.1 fork()函数详解: fork 是一个系统调用&#xff0…

Qt 加载 WPS 时提示要登录

项目中Qt加载word时 默认用wps打开word文档 程序一运行老是提示要立即登录 看着很烦 可以按下面的方法去掉这个烦人的东西 在下面的项目中新建字符串enableforceloginforfirstinstalldevice,值为false即可。

品聚文化--打造票圈神话

热烈祝贺鸿玉祥安文票9月5号正式启动运营 尊敬的各位领导、合作伙伴、客户以及全体品聚的家人们 今天,我们迎来了公司文票正式启动这一历史性的时刻,在此,我谨代表公司及全体员工,向所有关心和支持我们发展的朋友们表示最热烈的祝…

Java进阶13讲__第十讲

IO流、File 1. File 1.1 创建对象 1.1.1 File指向 指向文件 File f1 new File("E:\\TableFace\\Finished\\合同审核.txt"); 指向文件夹 File f2 new File("E:\\TableFace\\Finished"); 指向不存在文件 File f2 new File("E:\\T…

用最简单的话来解释大模型中的Transformer架构

开篇 我个人的观点是要想系统而又透彻地理解 Transformer,至少要遵循下面这样一个思路(步骤): 理解NLP基础 在探讨Transformers之前,了解自然语言处理(NLP)的一些基本知识至关重要。NLP使计算机能够理解和生成自然语…

GEE数据集:美国国家结构清单(NSI)用于评估和分析自然灾害的点式结构清单

简介 国家结构清单 国家结构清单(NSI)是一个数据库系统,其中包含不同质量和空间覆盖范围的结构清单。 NSI 数据库的目的是促进存储和共享用于评估和分析自然灾害的点式结构清单。 洪水风险是主要用途,但每个结构都有足够的数据来…

prompt实用技巧-竞对分析-飞书发布会上多维表和低代码平台原型分析

prompt engineer 工程师的一天 ,竞品分析相关。 “作为企业软件咨询公司整理出uipath,salesforce,airtable,zapier的官网地址,功能点详情,优势,劣势 生成表格4*4,表头为:uipath,salesforce,airtable,zapier, 第一例为&…

Nvidia股价反弹,博雅分析师力挺“行业首选”

在周四的交易中,Nvidia(NVDA)股价成功收复部分失地,上涨1%,这一积极走势得益于博雅全球研究公司(美国银行全球研究)发布的一份看涨报告。博雅分析师重申了对Nvidia的“行业首选”评级&#xff0…

『功能项目』Unity本地数据库读取进入游戏【29】

本章项目成果展示 打开上一篇28Unity连接读取本地数据库的项目, 本章要做的事情是通过读取本地数据库登录进入游戏场景 首先创建一个脚本文件夹: 新建脚本:MySqlAccess.cs 编写脚本:MySqlAccess.cs using UnityEngine; using MyS…

自定义v-model的两种形式

1 使用update (1)在组件中使用v-model"value" (2)props中接收modelValue (3)然后在value值发生变化的时候:this.$emit("update:modelValue", this.value); (4&…

【压力测试】如何确定系统最大并发用户数?

一、明确测试目的与了解需求 明确测试目的:首先需要明确测试的目的,即为什么要确定系统的最大并发用户数。这通常与业务需求、系统预期的最大用户负载以及系统的稳定性要求相关。 了解业务需求:深入了解系统的业务特性,包括用户行…

大语言模型(LLM)如何更好地继续预训练(Continue PreTraining)

预训练(Pretraining)是一个非常消耗资源的工作,尤其在 LLM 时代。随着LLama2的开源,越来越多人都开始尝试在这个强大的英文基座模型上进行中文增强。但,我们如何才能保证模型在既学到「中文知识」的情况下,…

这本PyTorch官方出品的《Deep Learning With PyTorch》终于有了中文版!

导读: 一些线上或线下的关于PyTorch的课程和大学里的计划课程,以及大量的线上博客和教程,使得PyTorch学习起来更容易。然而,关于PyTorch的图书很少。随着本书的出版,我们最终有了一本关于PyTorch的官方权威著作。 它非…