《汇编语言》- 读书笔记 - 第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 segmentstart: mov ax,0mov es,axmov bx,200hmov al,1		; 读取的扇区数mov dl,0        ; A 盘 mov dh,0        ; 磁头(面)mOV ch,0		; 磁道号mov cl,1		; 扇区号mov ah,2        ; 功能03H 写扇区int 13h         ; 调用“直接磁盘服务”ok:	mov ax,4c00hint 21h
code ends
end start

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

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

读取成功

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

写入成功

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

参考资料

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

15届蓝桥杯第二期模拟赛题单详细解析

文章目录 🧡🧡t1_求余🧡🧡思路代码 🧡🧡t2_灌水🧡🧡思路代码 🧡🧡t3_字符显示🧡🧡思路代码 🧡🧡t4_区间最大和…

Liunx下安装Redis(详细安装)

1、创建一个文件目录 mkdir /opt/redis2、进入安装目录 cd /opt/redis3、下载redis默认安装包 默认是3.0版本的 wget http://download.redis.io/releases/redis4、进行解压 tar -xzvf redis-3.0.7.tar.gz5、进入解压好的文件夹目录 cd redis-3.0.7 6、将redis重新安装到 …

C语言:操作符详解(下)

目录 一、逗号表达式二、下标访问[ ]、函数调用()1. [ ]下标引用操作符2.函数调用操作符 三、结构成员访问操作符1.结构体(1) 结构的声明(2) 结构体变量的定义和初始化 2.结构成员访问操作符(1)结构体成员的直接访问(2)结构体成员的间接访问 四、操作符的属性:优先级…

数据集成平台选型建议

一 数据集成介绍 数据集成平台是一种用于管理和协调数据流动的软件工具或服务。它的主要目标是将来自多个不同数据源的数据整合到一个统一的、易于访问和分析的数据存储库中。这些数据源可以包括数据库、云应用、传感器、日志文件、社交媒体等等。数据集成平台的关键任务是确保…

matlab去除图片上的噪声

本问题来自CSDN-问答板块,题主提问。 如何利用matlab去除图片上的噪声? 一、运行效果图 左边是原图,右边是去掉噪音后的图片。 二、中文说明 中值滤波是一种常见的图像处理技术,用于去除图像中的噪声。其原理如下: 1. 滤波器移动:中值滤波器是一个小的窗口,在图像上移…

【计算机视觉】二、图像形成:2、几何基元和几何变换:2D变换

文章目录 一、向量和矩阵的基本运算二、几何基元和变换1、几何基元(Geometric Primitives)2、几何变换(Geometric Transformations)1. 各种变换的关系2. 变换公式3. 2D变换的层次4. python实现 一、向量和矩阵的基本运算 【计算机视觉】二、图像形成:1、向量和矩阵…

显著性检验P值...

显著性检验&#xff1a;P值和置信度_显著性p<0.05,p<0.01,p<0.001-CSDN博客 看论文里面一般在结果后面都会加上 虽然学过概率统计&#xff0c;但是一直不懂在结果这里加上这个代表什么含义&#xff0c;以及如何计算&#xff0c;参考上面链接进行学习。 P值指的是比较…

数据结构--线性表

1.线性表的定义&#xff1a; 存在唯一的一个被称为“第一个”的数据元素&#xff1b; 存在唯一的一个被称为“最后一个”的数据元素&#xff1b; 除第一个之外&#xff0c;集合中的每一个数据元素都只有一个前驱&#xff1b; 除最后一个之外&#xff0c;集合中的每一个数据…

iOS 腾讯Pag动画框架-实现PagView的截图功能

背景 产品想要一个首页的截图功能,一听这个功能,心想那还不简单,将父视图控件转换成图片保存就行了。按照这个思路实现,很快就打脸啦,首页的这些动画一个都没有截出来,就像消失啦似的。然后蠢蠢的将动画暂停再截图,还是截不下这些动画,项目中用来显示动画的框架是腾讯…

macbook使用Parallels Desktop虚拟机中使用外接拓展屏幕

macbook使用安装了windows虚拟机后&#xff0c;想让windows使用macbook外接的拓展屏&#xff0c;其实很简单&#xff0c;只需要在parallels desktop中点击全屏开启&#xff1a; 就可以在windows全屏模式下使用拓展屏幕了

【MATLAB源码-第163期】基于matlab的BPSK+瑞利(rayleigh)信道下有无波束成形误码率对比仿真。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 在通信系统中&#xff0c;波束成形&#xff08;Beamforming&#xff09;技术是一种广泛使用的信号处理技术&#xff0c;通过调整天线阵列中各个元素的相位和幅度&#xff0c;使得信号在特定方向上增强&#xff0c;在其他方向…

【ACW 服务端】页面操作Java增删改查代码生成

版本: 1.2.2-JDK17-SNAPSHOT 项目地址&#xff1a;wu-smart-acw 演示地址&#xff1a;演示地址 admin/admin Java增删改查代码生成 找到对应菜单 选择你需要的数据实例 选择数据库 选择数据库表 选择客户端&#xff08;如果是本地ACW服务代码启动默认注册上的客户端ID是…