色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 第2章 一些數(shù)據(jù)單位(X86匯編教程)

          第2章 一些數(shù)據(jù)單位(X86匯編教程)

          作者: 時(shí)間:2016-12-01 來源:網(wǎng)絡(luò) 收藏
          選中你要打開的文件.你將看到如下內(nèi)容:


          我用WinHEX打開了一個(gè)PNG圖片文件.

          最上邊灰色那里,是顯示你打開的文件的文件名.已經(jīng)打開了一個(gè)PNG文件.

          白色區(qū)的offset豎排(也就是那些8個(gè)16進(jìn)制數(shù)字排列在一起的那一框)為當(dāng)前行第一個(gè)字節(jié)的偏移地址呢?偏移地址,是一個(gè)字節(jié)的距離第一個(gè)字節(jié)的長度 (以字節(jié)為單位).順帶一提,在電腦里有些東西的統(tǒng)計(jì)是以0開始的,我們生活中數(shù)數(shù)是1...2...3但是在電腦中有時(shí)是從0開始的,0...1...2...3學(xué)過高級(jí)語言的可能已經(jīng)習(xí)慣了,高手的代碼里經(jīng)常出現(xiàn)把某某數(shù)字加1或者減1就是為了這樣.

          這樣,我們的第一個(gè)字節(jié)的偏移為0.偏移豎排表示了第一個(gè)字節(jié)的偏移,偏移橫排則可以確定每個(gè)字節(jié)的偏移.

          算法:

          當(dāng)前行的偏移豎排處的數(shù)值+你要計(jì)算的那個(gè)字節(jié)在偏移橫排對(duì)應(yīng)的值=你要計(jì)算的那個(gè)字節(jié)的偏移


          比如:第3行第7個(gè)字節(jié).

          第3行偏移豎排處的值為00000020偏移橫排值為6(為什么第7個(gè)數(shù)字的橫排值會(huì)是6?沒搞錯(cuò)喲,記得前面說的從0開始嗎?從0開始計(jì)算,第7個(gè)字節(jié)為6喲!以后會(huì)經(jīng)常出現(xiàn)這樣的情況,匯編學(xué)久了就習(xí)慣了)

          加起來就是26H(注意:16進(jìn)制的喲!)

          最右邊就是ASCII解碼了,什么是ASCII呢?那是一種只有英文字母,數(shù)字,標(biāo)點(diǎn)符號(hào)的文本編碼(文本編碼:用數(shù)字表示字符.)正常的ASCII只有一個(gè)字節(jié),最右邊就是對(duì)ASCII進(jìn)行解析的區(qū)域,它能解析出這個(gè)字節(jié)和哪個(gè)字符的ASCII碼相同,并顯示出那個(gè)字符,如果那個(gè)字節(jié)沒有對(duì)應(yīng)的字符則顯示小數(shù)點(diǎn).


          好了,關(guān)于WinHEX的講解就到這里了.繼續(xù)講數(shù)據(jù)單位.
          之前說到,從某種意義上來說字節(jié)才是最小的單位.接著說說比字節(jié)大的單位.
          字 (WORD),1個(gè)字型數(shù)據(jù)有2個(gè)字節(jié),在文本編碼中,word才是表示一個(gè)字符的最佳單位.因?yàn)樽止?jié)(byte)只能表示0-255之間的數(shù)字(用計(jì)算器把2進(jìn)制的8個(gè)1轉(zhuǎn)換成10進(jìn)制看看)而就拿中文來說吧.幾千個(gè)中文,最大才255的字節(jié)型怎么夠呢?所以,用字形(WORD)有16位2進(jìn)制=65536(最大值65535,但是,從0開始啊!別把0丟了)種可能幾千個(gè)中文完全夠用了.所以中文編碼正常的是用2個(gè)字節(jié)(也就是"字"表示一個(gè)文字),可以做一個(gè)實(shí)驗(yàn):用記事本輸入一個(gè)中文,然后保存下來,用WinHEX打開看看.

          然后就是雙字(DWORD)了,顧名思義,就是2個(gè)字形數(shù)據(jù)合一起,有32比特,可能有人已經(jīng)想到了,32位系統(tǒng)能一次性計(jì)算一個(gè)雙字?jǐn)?shù)據(jù),但是不要想成雙字是 32位系統(tǒng)獨(dú)有的呀,曾經(jīng)的16位MS-DOS系統(tǒng)也是能有雙字型數(shù)據(jù)的喲!所謂字和雙字只是邏輯上的.完全能把字形數(shù)據(jù)當(dāng)作2個(gè)排列在一起的字節(jié)看待, 雙字也是,可以當(dāng)作是4個(gè)字節(jié)看待.

          .這些都是小單位.說說大點(diǎn)的單位吧.

          KB,在某些地方是1000字節(jié)的意思,但大多數(shù)時(shí)候是指1024個(gè)字節(jié)
          MB,代表1000KB或1024KB(大多數(shù)代表1024KB)
          GB,1000MB或1024MB
          TB,1000GB或1024GB(TB可是寫這教程的最近幾年才開始使用的...似乎很多人都還不知道有這個(gè)單位呢,,)

          在大家買手機(jī)記憶卡的時(shí)候是不是有出現(xiàn)過明明買的2G的卡,打開一看只有1.8G呢?實(shí)際上這是算法不同造成的.看到這里,大家都知道從KB開始,數(shù)據(jù)有 1000和1024這2種進(jìn)制.廠家用的就是1000進(jìn)制而我們用的就是1024進(jìn)制,所以,我們看到的記憶卡容量通常比卡上表示的小.按照以上方法,計(jì)算一下,你會(huì)發(fā)現(xiàn),你買的卡的空間不但沒有小于卡上面寫的,反而還大了一點(diǎn)呢!

          上一頁 1 2 下一頁

          關(guān)鍵詞: 數(shù)據(jù)單位X86匯編教

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉