【问题标题】:How to read FAT Table in Assembly Language [closed]如何用汇编语言读取 FAT 表
【发布时间】:2011-03-22 14:12:19
【问题描述】:

NC - 诺顿指挥官 我应该写一个像NC这样的程序。 我需要在程序集中访问 Fat Table 以显示程序中的文件和目录。 有人知道我如何在汇编中访问 Fat(软盘和硬盘) 我应该使用什么中断?

提前致谢。

【问题讨论】:

  • 您是打算从操作系统加载生成的代码(在这种情况下是哪个),还是打算尝试从可移动媒体的引导扇区引导它?
  • 您确定要访问 FAT(直接),还是只想获取目录条目列表等,在这种情况下,例如INT 21h下的DOS服务4Fh、4Eh会派上用场吗?
  • 如果您没有操作系统,您可能会被int 13h 卡住(哇,这让我回想起)
  • 我只想获取文件和目录条目的列表。我想也许我应该直接访问 Fat 我不知道我应该做什么(在 ms dos 中)

标签: assembly disk interrupt fat floppy


【解决方案1】:

出于安全原因,FAT 可能受到操作系统的保护,所以我猜你不能读/写它。您仍然可以使用interrupt #21h(3D - 打开,3E - 关闭,3F - 读取,40 - 写入,42 - 查找,4E - 查找第一个文件,4F - 查找下一个文件)或 interrupt #13h。

  • Int 13h 用于低级磁盘服务,因此您可以直接读取或写入您想要的任何(我认为)硬盘(和软盘)扇区(功能 2 和 3)。

  • Int 21h 允许您进行更高级的文件操作(其中一些已在上面列出)。查找第一个文件和第一个下一个文件查找与特定搜索模式匹配的文件(就像 windows 的查找一样,因此您可以列出名称为“ab?c.e?d”的所有文件)。我不确定这些函数是否也列出了目录,你应该检查一下

【讨论】:

  • 谢谢,这真的很有帮助。我不使用 Windows ,我在虚拟机中使用 MSDos 6.22。如何获取目录列表?
  • @ALi: 加油! (不客气):-)
猜你喜欢
  • 1970-01-01
  • 2011-12-22
  • 1970-01-01
  • 2010-12-24
  • 2014-10-07
  • 1970-01-01
  • 2013-01-17
  • 2013-09-04
相关资源
最近更新 更多