如何在 16 位 MASM 中使用 int 13h 格式化可移动设备(闪存驱动器)?
Posted
技术标签:
【中文标题】如何在 16 位 MASM 中使用 int 13h 格式化可移动设备(闪存驱动器)?【英文标题】:How to format a removable device (flash drive) with int 13h in 16-bit MASM? 【发布时间】:2014-06-16 05:03:07 【问题描述】:有人记得如何使用 int 13h service 5 格式化硬盘或可移动设备吗?我只需要一个如何做的例子。
谢谢。
【问题讨论】:
【参考方案1】:你面临两个问题:
闪存驱动器和硬盘通常不会像(曾经)格式化软盘那样格式化。软盘必须经过格式化才能在非结构化的“磁性”表面上创建扇区和磁道。
这种格式称为低级格式(INT 13h、AH=5 或 AH=6)。
闪存设备永远不会以这种方式格式化,因为它们没有非结构化的“磁性”表面。
现代硬盘(1980 年代 ESDI 技术之后出现的所有硬盘)在工厂进行格式化,并且没有标准化或记录在案的方法如何在家中重新格式化这些磁盘。用于格式化硬盘的 INT 13h 函数通常不适用于 IDE、SCSI 或 SATA 硬盘。
“格式化 USB 驱动器”时所做的只是将扇区(INT 13h、AH=3 或 AH=43h)写入尚未包含文件系统信息的磁盘,或覆盖现有文件系统信息.
您面临的第二个问题是大多数 Bios 不管理 USB 存储设备。
如果您使用此类 BIOS 从 USB 设备启动,您可以使用 INT 13h、AH=2 或 AH=42h 读取此设备(并且仅此设备)。也许您也可以编写设备(AH=3 或 AH=43h)。但是,您并没有真正尝试格式化您正在启动的设备?
【讨论】:
不,我将使用 Windows XP 进行格式化。编写一个 .com 程序集来做到这一点。 在 Windows XP 下?我认为 Windows XP 不允许 DOS 程序直接访问磁盘(int 013h)!无论如何:格式化 USB 驱动器只不过是将扇区写入驱动器(除非您使用 3.5" USB 软盘驱动器)。以上是关于如何在 16 位 MASM 中使用 int 13h 格式化可移动设备(闪存驱动器)?的主要内容,如果未能解决你的问题,请参考以下文章