EÊ ÂỚỚ ÊỚỚ EÊ ÂỚỚỚ ÊỚỚỚ EÊ | ÂỚỚỚỚ> day

Một phần của tài liệu Giáo trình TASM (Trang 98 - 100)

- (AT and later only)

OEÊ ÂỚỚ ÊỚỚ EÊ ÂỚỚỚ ÊỚỚỚ EÊ | ÂỚỚỚỚ> day

ÔỚỚỚỚỚỚỚỚỚỚỚỚỚ> month

ÔỚỚỚỚỚỚỚỚỚỚỚỚỚỚỚỚỚỚỚỚỚỚỚỚ> year-1980 (0-119 valid) Byte đaău tieđn cụa filename mang các ý nghĩa như sau:

Giá trị 0 : directory entry cịn trơng (chưa dùng đên) Giá trị E5h : directory entry đã bị xĩa bỏ

Các giá trị khác : directory entry đang được sử dúng Đơi với thư múc con:

File size luođn baỉng 0 --> kích thước thư múc chư cĩ theơ suy từ FAT.

Entry đaău cĩ name là . (moơt dâu châm) mang thođng tin veă vị trí, ngày giờ táo laơp, cluster baĩt đaău cụa chính thư múc con đĩ.

Entry thứ hai cĩ name là .. (hai dâu châm) mang thođng tin veă vị trí, ngày giờ táo laơp, cluster baĩt đaău cụa thư múc chứa thư múc con đĩ. (nêu giá trị cluster baỉng 0 --> thư múc mé là root)

14.6MINH HĨA VEĂ TOƠ CHỨC FAT VÀ THƯ MÚC

starting cluster number ỚỚEƠ

Directory [---v---]

Entry ỚỚ |M Y F I L E T X T|a||tim|dat|08size | Ù---|---EƠ OẴÙỚỚỚỚỚỚỚỚỚỚỚỚỚỚỚỚỚỚỚỚỚỚỚỚEÊ 00 01 02 03 04 05 06 07 |8 09 0a 0b 0c 0d 0e 0f ---v--- 00 |ID||ff||03=>04=>05=>ff||00||00||09=>0a=>0b=>15||00||00||00||00| ---|--- OẴÙỚỚỚỚỚỚỚỚỚỚỚỚỚỚỚỚỚỚỚỚỚỚEÊ ---v--- 10 |00||00||00||00||00||16=>17=>19||f7||1a=>1b=>ff||00||00||00||00| ---|---Á--- ÔỚỚỚỚỚỚỚEÊ 14.7LOGICAL SECTOR

Các sector trong moơt volume được MSDOS đánh sơ từ 0 trở đi. Các sector với cách đánh sơ như vaơy gĩi là logical sector. Veă bạn chât, logical sector và relative sector tương tự nhau. Veă phương dieơn tính tốn, relative sector baỉng với logical sector coơng theđm vị trí baĩt đaău cụa volume.

Ta neđn dùng interrupt 25h đeơ đĩc các logical sector. interrupt 26h đeơ ghi các logical sector. Input: AL = drive number (0=A, 1=B, etc.)

DS:BX = Ỵbuffer

CX = sơ lượng sector đĩc/ghi (<FFFFh)

CX = FFFFh --> tác vú tređn BIG DOS partitions (>32M) DS:BX = Địa chư cụa transfer packet (10 bytes)

DS:[BX+0] sector baĩt đaău (DWORD)

DS:[BX+4] sơ lượng sectors đĩc/ghi (WORD) DS:[BX+6] offset cụa buffer (WORD)

DS:[BX+8] segment cụa buffer (WORD) Output: CF = 1 --> AX = error code

Lưu ý : + Tât cạ các thanh ghi sẽ bị thay đoơi trừ DS, ES, SS, SP

Các interrupt này kêt thúc baỉng leơnh retf, do đĩ sẽ đeơ lái cờ hieơu trong stack khi kêt thúc.

Logical sector baĩt đaău cụa moơt cluster tính baỉng cođng thức sau : root—sects = (RootSize * 32) / SecSize

first—data = ResSecs + (FatSize * FatCnt) + root—sects logical—sector = first—data + ((cluster—no - 2) * ClusSize)

CHƯƠNG 15 :

Một phần của tài liệu Giáo trình TASM (Trang 98 - 100)