惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Microsoft Security Blog
Microsoft Security Blog
WordPress大学
WordPress大学
S
SegmentFault 最新的问题
爱范儿
爱范儿
B
Blog RSS Feed
Last Week in AI
Last Week in AI
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Blog — PlanetScale
Blog — PlanetScale
Vercel News
Vercel News
Jina AI
Jina AI
aimingoo的专栏
aimingoo的专栏
I
Intezer
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Attack and Defense Labs
Attack and Defense Labs
The GitHub Blog
The GitHub Blog
小众软件
小众软件
AI
AI
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
N
News and Events Feed by Topic
腾讯CDC
D
Docker
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
罗磊的独立博客
人人都是产品经理
人人都是产品经理
W
WeLiveSecurity
N
News and Events Feed by Topic
Security Archives - TechRepublic
Security Archives - TechRepublic
C
Check Point Blog
Webroot Blog
Webroot Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
H
Help Net Security
Recorded Future
Recorded Future
H
Hacker News: Front Page
T
Troy Hunt's Blog
V
V2EX
Forbes - Security
Forbes - Security
Stack Overflow Blog
Stack Overflow Blog
The Register - Security
The Register - Security
P
Palo Alto Networks Blog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
博客园 - 叶小钗
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
S
Security Affairs
The Hacker News
The Hacker News
Simon Willison's Weblog
Simon Willison's Weblog
博客园 - 三生石上(FineUI控件)
B
Blog
Apple Machine Learning Research
Apple Machine Learning Research
C
Cyber Attacks, Cyber Crime and Cyber Security
D
DataBreaches.Net

纸鹿摸鱼处

北京实习300天 | 纸鹿摸鱼处 实习后买了一堆东西 | 纸鹿摸鱼处 谈谈不受欢迎的博客技术特征 | 纸鹿摸鱼处 我们的设备被拿来做了什么:软件的背景行为 | 纸鹿摸鱼处 生成式AI正在生成 | 纸鹿摸鱼处 前端字体二三事 | 纸鹿摸鱼处 深色模式开发的最佳实践 | 纸鹿摸鱼处 寻不回手工油糕 | 纸鹿摸鱼处 一些数码外设的评价和“捡垃圾”心得 | 纸鹿摸鱼处 朋友的 Vivado 和 Modelsim 装上了吗 | 纸鹿摸鱼处 迟到三月的年末博客杂谈:动力、文章和内容 | 纸鹿摸鱼处 VitePress 不完全优化指南 | 纸鹿摸鱼处 给电脑新手的笔记本开荒指南导读 | 纸鹿摸鱼处 再谈考试时钟:技术之外的思考 | 纸鹿摸鱼处 今日校园见闻:我已经出离高兴了 | 纸鹿摸鱼处 配置并差点运行不了 Java Applet | 纸鹿摸鱼处 Windows 上的开源软件入门 | 纸鹿摸鱼处 博客进化:从 Hexo 到 Nuxt Content | 纸鹿摸鱼处 祖母的90年代南昌差旅之险 | 纸鹿摸鱼处 Linux 下通过 Samba 共享文件夹 | 纸鹿摸鱼处 从“端口无法访问”到本地环境问题——朋友的博客踩坑记录 | 纸鹿摸鱼处 Windows 空间管理/清理指南 | 纸鹿摸鱼处 遭遇APP乱象:老人的「钱袋子」开线了 | 纸鹿摸鱼处 封面被 Linux QQ 官方用了,但是有一些小缺陷 | 纸鹿摸鱼处 Windows 终端体验优化指南 | 纸鹿摸鱼处 有问题,就要讲出来。 | 纸鹿摸鱼处 从 CSS 排序折腾到 Stylelint 和 pnpm | 纸鹿摸鱼处 今日有「假」 | 纸鹿摸鱼处 把博客文章按年份放在子文件夹中了 | 纸鹿摸鱼处 写过的奇妙代码。 | 纸鹿摸鱼处 Arch Linux 启动引导修复 | 纸鹿摸鱼处 在延长今天和期待明天之间 | 纸鹿摸鱼处 今日无事,除了一些技术咨询 | 纸鹿摸鱼处 系统引导配置分享 | 纸鹿摸鱼处 病毒高占用CPU,三天杀俩 | 纸鹿摸鱼处 运营商又想多收话费了 | 纸鹿摸鱼处 电脑连接手机,手机给电脑传文件…… | 纸鹿摸鱼处 Moonlight 串流指南 | 纸鹿摸鱼处 SSH 免密登录 | 纸鹿摸鱼处 Termux 简单指南 | 纸鹿摸鱼处 Tailscale 不完全使用指南 | 纸鹿摸鱼处 Windows 安装指南 | 纸鹿摸鱼处 Arch Linux 易用性及美化 | 纸鹿摸鱼处 Arch Linux 初步配置 | 纸鹿摸鱼处 使用 ArchInstall 安装 Arch Linux | 纸鹿摸鱼处 VS Code 简单配置项 | 纸鹿摸鱼处 他修电脑又遇到了我 | 纸鹿摸鱼处 修监控 (授权转载) | 纸鹿摸鱼处 被大块落冰砸中的话—— | 纸鹿摸鱼处
使用 DOSBox 的多种方式 | 纸鹿摸鱼处
纸鹿本鹿, hi@zhilu.cyou · 2024-05-11 · via 纸鹿摸鱼处

学校开展了计算机科学导论、微型计算机原理与接口技术相关课程,要求学生使用 DOSBox 模拟 DOS 环境进行汇编。但网上看到的教程不全,遂撰写此文。

在 Windows 上安装 DOSBox

优化体验

使用以下方式之一打开配置文件,版本号可能有所不同:

  • 在开始菜单中搜索“DOSBox 0.74-3 Options”打开。
  • 在“开始菜单>所有应用>DOSBox 0.74-3”中找到“DOSBox 0.74-3 Options”打开。
  • CMD>

    notepad %LocalAppData%\DOSBox\dosbox-0.74-3.conf

  • PS>

    code $env:LOCALAPPDATA\DOSBox\dosbox-0.74-3.conf

修改显示大小

Alt-Enter 组合键可以切换全屏和窗口模式,但是全屏后任何焦点变化(打开开始菜单、切换窗口)都会导致退出全屏。

切换全屏和窗口模式时,会伴有屏幕分辨率切换,会短暂黑屏几秒,并且其他窗口大小会受到影响(未最大化的窗口缩小到640*400,即受到全屏时的分辨率限制)。因此建议通过修改配置文件来避免使用全屏模式。

找到配置文件开头的这两行:

doxbox-0.74-3.confini
windowresolution=original
output=surface
  • 想要放大画面,可以修改 windowresolution 为以下值:
    • 1280x800(2倍)
    • 960x600(1.5倍)
  • 如果修改了 windowresolutionoutput 方式也要修改。
    • 网上的多数教程都改成了 opengl,这种方式会导致缩放模糊。并且多数学生使用的笔记本同时具有核显和独显,OpenGL 引擎启动时会调用独立显卡,增加耗电
    • 在这里,本人推荐改成 overlay 或者 ddraw,这些输出方式使用临近(Nearest)缩放算法,字体边缘更清晰,不会出现模糊。

自动挂载

在配置文件末尾,[autoexec] 一节下添加以下内容,参数中的文件夹路径可以随自己喜好修改:

doxbox-0.74-3.confini
[autoexec]
# 将 Windows 系统 D:\Software\MASM 文件夹挂载到 DOS 虚拟磁盘 C:
MOUNT C D:\Software\MASM
# 设置 C: 为 PATH,使得 MASM 文件夹中的程序在任何目录下都可调用
SET PATH=C:
# 将【已经创建的】本地代码目录挂载到 DOS 虚拟磁盘 D:
MOUNT D D:\CodeXUPT\Assembly
# 切换到 D:
D:

这样,启动 DOSBox 后,就会自动挂载 MASM 文件夹和代码文件夹。并且可以在代码目录下,直接通过 masm debug 等指令操作文件。

Playground - An x86 assembly playGround in JSDos environment

dosasm.github.io

这个网站通过 js-dos 模拟 DOS 环境,提供了 DOS 编程练习功能,还附有一份 帮助文档。网站托管在 GitHub Pages 上,有概率无法访问。

你也可以在CO导航的“校友推荐”板块中找到这个网站。

在 VS Code 中使用 DOSBox

  • 在 VS Code 中安装 MASM/TASM 插件
  • 在扩展设置中,将“Masmtasm.ASM: Assembler(选择使用的汇编工具)”项更改为“MASM”。
    • 也可以直接在配置文件中添加以下内容:
      %APPDATA%/Code/User/settings.jsonjson
      {
        "masmtasm.ASM.assembler": "MASM",
      }
      
  • .asm 文件的编辑界面右键,可以看到运行调试相关的选项。

如果遇到问题,可以查看 帮助文档