《汇编语言》- 读书笔记 - 第17章-外传之 DOSBox-X 调用 int 13 读写磁盘

《汇编语言》- 读书笔记 - 第17章-外传之 DOSBox-X 调用 int 13 读写磁盘

  • 总结
    • dosbox-x.conf
  • 不完美
  • 读取成功
  • 写入成功
  • 参考资料

总结

DOSBox 中访问 int 13h 始终没反应。网上查了下有人说是没支持,建议使用 DOSBox-X

经过无数遍尝试后:

环境状态
Win11:DOSBox失败
Win11:DOSBox-X失败
Oracle VM VirtualBox:DOS失败
VMWare:DOS失败
VMWare:XP失败
VMWare:XP:DOSBox失败
VMWare:XP:DOSBox-X成功
但不完美

于是接下来我进入虚拟机中的XP系统使用 DOSBox-X 测试结果。

DOSBox-X 下载连接
EditPlus 文字编辑器 v5.4 汉化特别免费绿色版
Editplus 语法高亮文件
WinHex v21.0 绿色汉化特别版(无需注册)

dosbox-x.conf

这是我的设置,启动时自动挂载。

[autoexec]
# 挂载虚拟机XP中的 c:\masm 目录为 dosbox-x 中 DOS 系统的 c 盘
# 为了方便我把 masm,link,ml 等工具放在了 c:\tools 并追加到环境变量中
# 设置完成后自动切到 c 盘
mount c c:\masm
set PATH=%PATH%;c:\tools;
c:
# 挂载软盘镜像为 A 盘
IMGMOUNT A C:\masm\A.flp -t floppy

不完美

每回第一次调用 int 13 都会失败,需要刷新一下驱动器,第二次才能成功。
后续再多次读写,也是成功的。
奇怪的时,在第一次调用之前,我先刷新驱动器并不起作用。

比如:

assume cs:code
code segment
 start: mov ax,0
		mov es,ax
		mov bx,200h
		
		mov al,1		; 读取的扇区数
		mov dl,0        ; A 盘 
		mov dh,0        ; 磁头(面)
		mOV ch,0		; 磁道号
		mov cl,1		; 扇区号
		mov ah,2        ; 功能03H 写扇区
		int 13h         ; 调用“直接磁盘服务”

        ok:	mov ax,4c00h
		int 21h
code ends
end start

第一次读取返回结果: ah=06 软盘取出。
在这里插入图片描述

刷新驱动器(我挂载的是A盘),后再次执行就好了。
在这里插入图片描述

读取成功

在这里插入图片描述
读取前查看一下目标内存区域,是没有数据的。
调用后 AH=00h 表示成功。
在这里插入图片描述
此时的内存中正是软盘启动扇区的数据。
在这里插入图片描述
再用 WinHex 查看软盘镜像文件,对比读取到的内容。

写入成功

在这里插入图片描述
调用后 AH=00h 表示成功。
在这里插入图片描述
再直接用 WinHex 查看软盘镜像文件,正是刚才屏幕上的内容。

参考资料

《汇编语言》- 读书笔记 - 第17章-使用 BIOS 进行键盘输入和磁盘读写

FatFs 之三 FAT文件系统基础、FAT 数据格式、引导、编码

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

构建社区服务平台的智慧架构

社区服务平台作为连接社区居民与各类服务资源的桥梁,承载着提升居民生活品质、促进社区发展的重要使命。本文将深入探讨社区服务平台的架构设计理念、核心功能和发展前景,助力读者了解如何构建智慧化、便捷化的社区服务平台,为社区居民提供更…

【Java设计模式】二十、迭代器模式

文章目录 1、迭代器模式2、案例3、总结4、在源码中的实际应用 1、迭代器模式 提供了一种遍历的方式提供了一个对象来顺序访问聚合对象(集合、容器)中的一系列数据,而不会暴露聚合对象的内部表示 相关角色: 抽象聚合&#xff1a…

厚膜高压电阻器应用

EAK高压厚膜电阻器可用于广泛的应用。其中包括电源、配电系统、ESD 保护、电子显微镜、空气电离设备、雷达设备、X 射线发生器和 ATE。 示例电路包括高压泄放器、电压平衡、电压调节和分压器。在这篇文章中,我们将讨论选择电阻器时要考虑的关键问题。 电压泄放电路…

IDEA开启Run Dashboard

1、Run Dashboard是什么,为什么要使用 Run Dashboard 是 IntelliJ IDEA 中的一个工具窗口,用于管理和监视项目中正在运行的应用程序和配置。它提供了一种集中管理运行和调试过程的方式,可以让开发人员更方便地查看和控制正在运行的应用程序。…

CSAPP Malloc lab

CSAPP Malloc Lab 目标 实现一个简单的动态存储分配器。 评分标准 空间利用率应当减少internal 和 external fragmentation. memory utilization memory utilization payload / heap size fragmentation internal fragmentation external fragmentation throughput T 越接…

vue中ref 根据多选框所选数量,动态地变换box的高度

查看本专栏目录 关于作者 还是大剑师兰特:曾是美国某知名大学计算机专业研究生,现为航空航海领域高级前端工程师;CSDN知名博主,GIS领域优质创作者,深耕openlayers、leaflet、mapbox、cesium,canvas&#x…

如何调整yolo混淆矩阵的大小,使其更加美观

1、找到xxx/utils/metrics.py 2、找到这个函数 3、往下拉找到这里&#xff0c;自己对照改一下 import seaborn as snarray self.matrix / ((self.matrix.sum(0).reshape(1, -1) 1E-9) if normalize else 1) # normalize columnsarray[array < 0.005] np.nan # dont a…

分布式之Sentinel使用和源码分析

Sentinel使用和源码分析 1、服务雪崩效应 在分布式系统中,由于网络原因或自身的原因,服务一般无法保证 100% 可用。如果一个服务出现了问题&#xff0c;调用这个服务就会出现线程阻塞的情况&#xff0c;此时若有大量的请求涌入&#xff0c;就会出现多条线程阻塞等待&#xff…

Redirect相应重定向无法访问WEB-INF下的静态资源,可以跳到外部资源(比如www.baidu.com)

相应重定向无法访问WEB-INF目录下静态资源&#xff0c;WEB-INF目录下静态资源受保护。 访问外部资源 访问Servlet5.do&#xff0c;就跳到百度页面

【快速上手ProtoBuf】proto 3 语法详解

1 &#x1f351;字段规则&#x1f351; 消息的字段可以⽤下⾯⼏种规则来修饰&#xff1a; singular &#xff1a;消息中可以包含该字段零次或⼀次&#xff08;不超过⼀次&#xff09;。 proto3 语法中&#xff0c;字段默认使⽤该规则。repeated &#xff1a;消息中可以包含该…

二,几何相交---4,BO算法---(3)数据结构

数据结构分两块&#xff0c;一个是某一时间状态的局部相交线段。一个是事件队列&#xff0c;是某一时刻局部相交线段的集合。

【Java设计模式】十九、中介者模式

文章目录 1、中介者模式2、案例3、总结 1、中介者模式 如图&#xff1a; 同事类之间关联较多时&#xff0c;整体出现网状结构&#xff0c;耦合度极高。一个对象一变动&#xff0c;好多对象都得改。若变为右边的星形结构&#xff0c;则一个类的变动&#xff0c;只影响自身与中介…

Vulnhub - DevGuru

希望和各位大佬一起学习&#xff0c;如果文章内容有错请多多指正&#xff0c;谢谢&#xff01; 个人博客链接&#xff1a;CH4SER的个人BLOG – Welcome To Ch4sers Blog DevGuru 靶机下载地址&#xff1a;DevGuru: 1 ~ VulnHub 目录 0x01 信息收集 0x02 Web漏洞利用 - W…

Ansible管理主机的清单------------inventory

一、 Ansible组成 INVENTORY&#xff1a;Ansible管理主机的清单 /etc/ansible/hosts 需要管理的服务清单,(将你需要管理的主机 、地址 或者名字 写入此文件) MODULES&#xff1a;Ansible执行命令的功能模块&#xff0c;多数为内置核心模块&#xff0c;也可自定义 PLUGINS&…

掌握抽象基础之20个必备原则,看完你还不会,你打我

抽象基础之20个必备原则 1. 面向对象编程&#xff08;OOP&#xff09;中抽象原则背后的基本思想是什么&#xff1f;2.抽象和封装的区别&#xff1f;3.提供一个现实生活中说明抽象的例子4.在编程语言中如何实现抽象&#xff1f;5.定义抽象类6.提供一个抽象类的真实世界场景7.解释…

大数据赋能,能源企业的智慧转型之路

在数字洪流中&#xff0c;大数据已经成为推动产业升级的新引擎。特别是在能源行业&#xff0c;大数据的应用正引领着一场深刻的智慧转型。今天&#xff0c;我们就来探讨大数据如何在能源企业中发挥其独特的魅力&#xff0c;助力企业提效降本&#xff0c;实现绿色发展。 动态监控…

学生时期学习资源同步-1 第一学期结业考试题5

原创作者&#xff1a;田超凡&#xff08;程序员田宝宝&#xff09; 版权所有&#xff0c;引用请注明原作者&#xff0c;严禁复制转载

Java推荐算法——特征加权推荐算法(以申请学校为例)

加权推荐算法 文章目录 加权推荐算法1.推荐算法的简单介绍2.加权推荐算法详细介绍3.代码实现4.总结 1.推荐算法的简单介绍 众所周知&#xff0c;推荐算法有很多种&#xff0c;例如&#xff1a; 1.加权推荐&#xff1a;分为简单的特征加权&#xff0c;以及复杂的混合加权。主要…

软考高级:系统工程方法(霍尔三维结构、切克兰德方法等)概念和例题

作者&#xff1a;明明如月学长&#xff0c; CSDN 博客专家&#xff0c;大厂高级 Java 工程师&#xff0c;《性能优化方法论》作者、《解锁大厂思维&#xff1a;剖析《阿里巴巴Java开发手册》》、《再学经典&#xff1a;《Effective Java》独家解析》专栏作者。 热门文章推荐&am…

Python+Selenium 自动化 - 开发环境搭建

PythonSelenium 自动化 - 开发环境搭建 一、Python 下载与安装二、Geany 代码编辑工具下载与安装三、代码运行演示 一、Python 下载与安装 Python 官网&#xff1a;https://www.python.org/ 首先在官网下安装包。 建议选择稳定版本&#xff0c;我这里下载的是 3.12.2 版本。 …