DTA 是什么

snowingbf 2008-07-28 12:21:21
mov ah, 001Ah ; Set DTA
int 0021h

DTA是什么
长度是多少
每一位或字节的含义是什么
设置或改变DTA对文件有什么样的影响?
...全文
1198 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
0xAA55 2011-08-26
  • 打赏
  • 举报
回复
我把#1楼的英文资料翻译了一下。

INT 21 1A-- - DOS 1+ - 设置磁盘传输区地址


种类: D - DOS 核心

Inp.:
AH = 1Ah
DS:DX -> Disk Transfer Area (DTA)
注:当一个程序启动的时候DTA被设置到PSP:0080h。
在FlashTek X - 32 DOS扩展下,指针在DS:EDX
另见:AH=11h,AH=12h,AH=2Fh,AH=4Eh,AH=4Fh
INT 21
拷贝自拉尔夫 - 布朗的中断表
outsinre 2008-08-30
  • 打赏
  • 举报
回复
UP
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 cnzdgs 的回复:]
DTA是DOS下搜索文件功能FindFirst、FindNext(int 21h ah=4eh和ah=4fh)使用的结构,用于储存查找到的文件信息。定义大概如下:
[/Quote]

对,FindFirst、FindNext也使用了DTA(还有使用FCB的查找功能也使用了DTA),不过严格意义上讲,DTA只是一个buffer,它只有大小,是没有结构的。FindFirst、FindNext只是把用到的查找结构存储在DTA中。同样,使用FCB的文件操作一般都会把FCB存储在DTA中。
cnzdgs 2008-07-29
  • 打赏
  • 举报
回复
DTA是DOS下搜索文件功能FindFirst、FindNext(int 21h ah=4eh和ah=4fh)使用的结构,用于储存查找到的文件信息。定义大概如下:
DTA STRUCT
Res DB 21 DUP(?)
Attrib DB ?
Time DW ?
Date DW ?
Bytes DD ?
Name DB 12 DUP(?),0
DTA ENDS
alan001 2008-07-29
  • 打赏
  • 举报
回复
UP
  • 打赏
  • 举报
回复
INT 21 1A-- - DOS 1+ - SET DISK TRANSFER AREA ADDRESS


Category: D - DOS kernel

Inp.:
AH = 1Ah
DS:DX -> Disk Transfer Area (DTA)
Notes: the DTA is set to PSP:0080h when a program is started
under the FlashTek X-32 DOS extender, the pointer is in DS:EDX
SeeAlso: AH=11h,AH=12h,AH=2Fh,AH=4Eh,AH=4Fh
INT 21
Copied from Ralf Brown's Interrupt List

每一位或字节的含义是什么 ?没有含义,DTA只是一个使用FCB方式读写文件的缓冲区(FCB方式是从CP/M系统遗留下来的,基本没用)。
设置或改变DTA对文件有什么样的影响? 一般没什么影响,不过与你打开/建立文件时记录块的大小有关,DTA至少应该能存下一个文件记录。

21,458

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧