Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 是否使用程序集代码访问硬驱动文件?_Windows_Assembly_Ntfs_Drives - Fatal编程技术网

Windows 是否使用程序集代码访问硬驱动文件?

Windows 是否使用程序集代码访问硬驱动文件?,windows,assembly,ntfs,drives,Windows,Assembly,Ntfs,Drives,因此,我尝试制作一个小的可引导汇编程序,让用户删除文件并将其添加到指定的驱动器。唯一的问题是,我不知道如何使用汇编访问驱动器。有人能告诉我在哪里可以找到这些信息吗?这些信息也可能是针对c编程语言的 我将尝试从一些可引导的汇编代码类型访问默认的Windows7硬盘。这是NTFS。要在x86 PC上以某些可引导代码访问磁盘,最简单、最自然的方法是使用。这将允许您读取和写入各个磁盘扇区 硬盘驱动器通常分为多个分区,还有(MBR)描述每个分区的位置、大小和类型。MBR是硬盘的第一个扇区 每个分区中都有一

因此,我尝试制作一个小的可引导汇编程序,让用户删除文件并将其添加到指定的驱动器。唯一的问题是,我不知道如何使用汇编访问驱动器。有人能告诉我在哪里可以找到这些信息吗?这些信息也可能是针对c编程语言的


我将尝试从一些可引导的汇编代码类型访问默认的Windows7硬盘。这是NTFS。

要在x86 PC上以某些可引导代码访问磁盘,最简单、最自然的方法是使用。这将允许您读取和写入各个磁盘扇区

硬盘驱动器通常分为多个分区,还有(
MBR
)描述每个分区的位置、大小和类型。MBR是硬盘的第一个扇区

每个分区中都有一些文件系统。您需要实现一个NTFS驱动程序,以便能够读取和写入NTFS中的文件

AFAIK尚未打开,但存在基于反向工程的NTFS驱动程序(例如,在Linux中)。NTFS驱动程序通常是用C++编写的,而不是汇编,因为NTFS很大而且很复杂,而且C在开发、维护和可移植性方面比汇编更实用。我不建议在汇编中编写FS代码

在系统方面,情况有些不同。这里没有MBR,您可以使用EFI工具来访问磁盘,而不是BIOS int 13h


p.p.S.我已经在C和一点汇编中完成了您想要的,但是使用FAT1x/32而不是NTFS。这是可行的。NTFS更难。对于一个人来说可能是不可能的,特别是如果他们没有足够的知识和技能。

什么文件系统?每个文件系统都有不同的文件信息存储方式。除了文件系统之外,我们还需要了解您编写的操作系统。Windows 7和默认文件系统ext3我认为Win7默认文件系统肯定不是ext3,如果没有第三方内核组件,甚至不支持ext3。天哪,这就像是问“我怎么说中文,我星期三要做一个演讲”好答案!还请注意,在某些情况下(例如,使用“PC BIOS”从硬盘引导时,您希望访问存储在CD或USB闪存上的文件),您可能必须实现自己的低级驱动程序。@Brendan:可以,但当您启动CD/USB时,您可以使用相同的BIOS功能访问它们,BIOS使它们看起来像FDD/HDD。