讀取FAT16文件專業(yè)知識(shí)講座_第1頁(yè)
讀取FAT16文件專業(yè)知識(shí)講座_第2頁(yè)
讀取FAT16文件專業(yè)知識(shí)講座_第3頁(yè)
讀取FAT16文件專業(yè)知識(shí)講座_第4頁(yè)
讀取FAT16文件專業(yè)知識(shí)講座_第5頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

讀?。疲粒裕保段墨I(xiàn)下列內(nèi)容均參照自baidu文庫(kù)中"SD卡FAT16文獻(xiàn)系統(tǒng)學(xué)習(xí)筆記"只是我加入了很多圖片以幫助理解,希望對(duì)學(xué)習(xí)FAT16系統(tǒng)中你有所幫助!

1/12讀取文獻(xiàn)流程:

1.讀物理扇區(qū)0,得到引導(dǎo)扇區(qū)(邏輯扇區(qū)0)偏移地址。

2.讀引導(dǎo)扇區(qū)內(nèi)容,得到文獻(xiàn)系統(tǒng)基本配備信息。

3.根據(jù)文獻(xiàn)系統(tǒng)基本配備信息計(jì)算FAT,F(xiàn)DT,及數(shù)據(jù)簇起始地址。

4.根據(jù)要讀文獻(xiàn)名搜索FDT(根目錄),找到要讀文獻(xiàn)起始數(shù)據(jù)簇號(hào)及文獻(xiàn)大小。

5.根據(jù)文獻(xiàn)起始數(shù)據(jù)簇號(hào)在FAT表中查找所有該文獻(xiàn)占用數(shù)據(jù)簇號(hào),根據(jù)數(shù)據(jù)簇號(hào)查找對(duì)應(yīng)數(shù)據(jù)簇。6.查找下一種數(shù)據(jù)簇號(hào)讀取對(duì)應(yīng)數(shù)據(jù)簇,直到讀出最后一種數(shù)據(jù)簇0xFFFF。2/12

我這里就有一張SD卡(容量為1G),插上電腦后格式化為FAT格式,然后再往里面放某些文獻(xiàn)!

在電腦上裝上一種叫WinHex軟件,利用其打開磁盤工具,就能夠在物理層面上打開這張SD卡。

讀物理扇區(qū)0(也即MBR),得到引導(dǎo)扇區(qū)(邏輯扇區(qū)0)(DBR)偏移地址。

先讀取SD卡第一種扇區(qū)(512字節(jié)),即扇區(qū)0,該扇區(qū)數(shù)據(jù)如下列圖所示:

3/124/12正常話,該扇區(qū)最后兩個(gè)字節(jié)如上圖所示為55AA,假如不是則證明是讀錯(cuò)了,或者該SD沒有被格式化.該扇區(qū)有兩個(gè)主要信息:

一、在0x1ca開始四個(gè)字節(jié)03071E00,即0x1E0703=1967875,代表該SD卡有1967875個(gè)扇區(qū),而每個(gè)扇區(qū)有512字節(jié),因此該SD卡容量為1967875*512/1024/1024=960.8MByte

二、在0x1C6開始四個(gè)字節(jié)FD000000,即0xFD=253,它表達(dá)引導(dǎo)扇區(qū)在扇區(qū)253.

到此,這個(gè)扇區(qū)0就能夠不用管了。5/12讀取引導(dǎo)扇區(qū)(DBR)下列是扇區(qū)253前64Byte內(nèi)容。由于253*512=0x01FA00,因此能夠懂得下列圖左邊偏移地址為:0x0001FA006/12首先第0x3到0xA內(nèi)容為ASCII碼“MSDOS5.0”,統(tǒng)計(jì)了系統(tǒng)版本,這個(gè)我們不用管。下列才是我們需要理解叫做BPB內(nèi)容:

第0xb開始兩個(gè)字節(jié)0002,即0x2023=512,代表每個(gè)扇區(qū)(sector)有512個(gè)字節(jié)(byte)

接下來(lái)20代表每個(gè)簇(cluster)有32個(gè)扇區(qū)

接下來(lái)0600即0x6代表有6-1個(gè)保存扇區(qū),能夠計(jì)算第一種FAT表所在扇區(qū)為253+6=259

接下來(lái)02代表有兩個(gè)FAT表

接下來(lái)0002,即0x2023=512,代表FDT(目錄區(qū))有512登記項(xiàng)

第0x16開始兩個(gè)字節(jié)f100,即0xf1=241,代表每個(gè)FAT表占241個(gè)扇區(qū)

第0x36到0x3d代表就是“FAT16”ASCII碼,說(shuō)明這張SD卡是FAT16格式根據(jù)上述DBR內(nèi)容可得到下列信息:

目前DBR所在扇區(qū):253

每扇區(qū)字節(jié)數(shù):512

每簇扇區(qū)數(shù):32

第一種FAT表所在扇區(qū):DBR所在扇區(qū)+保存扇區(qū)數(shù)=253+6=259

FAT表占用扇區(qū)數(shù):241

根目錄首扇區(qū):第一種FAT表扇區(qū)+FAT扇區(qū)數(shù)*FAT表數(shù)=259+241*2=741;

根目錄項(xiàng)數(shù):512

根目錄占用扇區(qū)數(shù):(根目錄項(xiàng)數(shù)*32)/512=32

第一種數(shù)據(jù)扇區(qū):根目錄扇區(qū)+根目錄所占扇區(qū)數(shù)=741+32=7737/12我sd卡里有一種叫做“123.txt”文檔用記事本打開內(nèi)容是:

目前我們就要找到它,并且看看它在sd卡實(shí)際內(nèi)容。

首先:跳到根目錄扇區(qū)741(741*512=0x5CA00),看看它內(nèi)容:8/129/12我們?cè)谏厦婷?2個(gè)字節(jié)逐次找(直到找到“123.txt”文獻(xiàn)名),一種項(xiàng)要占用32個(gè)字節(jié)。前面8個(gè)字節(jié)是文獻(xiàn)名“123”背面3個(gè)字節(jié)TXT是后綴名(熟悉吧!)

但我們真正用到是這32個(gè)字節(jié)最后6個(gè)字節(jié)(2E014E550300)

其中“4E550300”表達(dá)文獻(xiàn)大小,占用0x03554E=218446個(gè)字節(jié)(也就是218446/1024=213K)占用了(218446/512/32)14個(gè)數(shù)據(jù)簇

“2E01”表達(dá)文獻(xiàn)首簇號(hào)在“0x012E=302”處

該文獻(xiàn)首個(gè)數(shù)據(jù)簇扇區(qū)位置是:第一種數(shù)據(jù)扇區(qū)+(目前簇號(hào)-2)*每簇扇區(qū)數(shù)(也就是32)

773+(302-2)*32=10373

10/12來(lái)到10373號(hào)扇區(qū)(實(shí)際地址10373*512=0x510A00),看看它內(nèi)容:

看右邊文獻(xiàn)解釋,是不是跟記事本打開文檔一致!

下面我們?cè)俨檎蚁乱粩?shù)據(jù)簇內(nèi)容,首先要查找下一種數(shù)據(jù)簇號(hào)所在扇區(qū):

是這樣計(jì)算:FAT首地址+302/256=(259+0x01)=260,我們來(lái)到260號(hào)扇區(qū),然后計(jì)算簇號(hào)所在偏移地址

(302mod256)*2=0x2E*2=0x5C

所在簇號(hào)就在該扇區(qū)偏移地址0x5C處:

就是實(shí)際地址(260*512+0x5C=0x2085C)

11/12由上圖可知,0x2085C,0x2085D(數(shù)據(jù)簇占用兩個(gè)字節(jié))內(nèi)容是:2F01,即0x012F就是下一簇簇號(hào)。同理計(jì)算出再下一簇簇號(hào)扇區(qū)是:259+1,偏移地址是0x2F*2=0x5E,即實(shí)際地址0x2085E,該處為0x0130同理能夠計(jì)算出余下簇號(hào)為:0x0131,0x0132,0x0133,0x0134,0x0135,0x0136,0x0137,0x0138,0x0139,0x

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論