【问题标题】:Read a given file's attributes读取给定文件的属性
【发布时间】:2016-12-10 18:19:47
【问题描述】:

我有一个任务,他们给我一个文件的路径,我必须打印该文件的所有属性...

到目前为止,我在互联网上找到的所有内容都是关于从文件中写入/读取的内容,但这一点帮助都没有。

编辑:必须用汇编语言完成 EDIT2:我使用的是 windows 7 x64,但我所有的程序都是使用 TASM、TLINK 编译的,并且我正在使用 Turbo Debugger 进行调试

【问题讨论】:

  • 你为什么用汇编来标记这个?您是否必须实现文件系统元数据读取器?对于哪个文件系统?你试过什么?
  • 我编辑了。我必须在程序集和所有可能的属性中执行此操作。到目前为止,我什么都没试过,因为这是我第一次在程序集中使用文件。
  • 什么处理器?什么操作系统?微软DOS? Linux?操作系统/X?其他? 16 位、32 位、64 位?
  • 所以 DOSBOX/TASM 建议您可能正在编写 16 位 MS-DOS 程序
  • 最好的 DOS/BIOS 资源之一是Ralph Brown's Interrupt List。特别是您会对DOS Int 21h routines 感兴趣,但特别是Get File Attributes 并且位字段定义为here

标签: assembly x86-16 dos tasm dosbox


【解决方案1】:

由于这似乎与家庭作业/作业相关,我将指导您了解执行任务所需的资源和中断信息,而无需编写实际代码。

  • 与 MS-DOS/BIOS 相关的所有东西的最佳位置之一是 Ralph Brown's Interrupt List
  • 在处理 DOS 和文件时,大多数感兴趣的例程可能是 DOS Int 21h functions
  • 您可能特别想使用 DOS 的 Int 21h/AX=4300h Get File Attributes 函数。

    AX = 4300h
    DS:DX -> ASCIZ filename
    
    Return:
    CF clear if successful
    CX = file attributes (see #01420)
    AX = CX (DR DOS 5.0)
    CF set on error
    AX = error code (01h,02h,03h,05h) (see #01680 at AH=59h)
    

    您还可以找到file attribute bits

    Bit(s)  Description     (Table 01420)
    7      shareable (Novell NetWare)
           pending deleted files (Novell DOS, OpenDOS)
    6      unused
    5      archive
    4      directory
    3      volume label.
           Execute-only (Novell NetWare)
    2      system
    1      hidden
    0      read-only
    

【讨论】:

    猜你喜欢
    • 2019-12-09
    • 1970-01-01
    • 2018-06-21
    • 2018-09-17
    • 2016-10-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多