新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 第2章 一些數據單位(X86匯編教程)

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

        作者: 時間:2016-12-01 來源:網絡 收藏
        選中你要打開的文件.你將看到如下內容:


        我用WinHEX打開了一個PNG圖片文件.

        最上邊灰色那里,是顯示你打開的文件的文件名.已經打開了一個PNG文件.

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

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

        算法:

        當前行的偏移豎排處的數值+你要計算的那個字節在偏移橫排對應的值=你要計算的那個字節的偏移


        比如:第3行第7個字節.

        第3行偏移豎排處的值為00000020偏移橫排值為6(為什么第7個數字的橫排值會是6?沒搞錯喲,記得前面說的從0開始嗎?從0開始計算,第7個字節為6喲!以后會經常出現這樣的情況,匯編學久了就習慣了)

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

        最右邊就是ASCII解碼了,什么是ASCII呢?那是一種只有英文字母,數字,標點符號的文本編碼(文本編碼:用數字表示字符.)正常的ASCII只有一個字節,最右邊就是對ASCII進行解析的區域,它能解析出這個字節和哪個字符的ASCII碼相同,并顯示出那個字符,如果那個字節沒有對應的字符則顯示小數點.


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

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

        .這些都是小單位.說說大點的單位吧.

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

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

        上一頁 1 2 下一頁

        關鍵詞: 數據單位X86匯編教

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 安康市| 大冶市| 和田县| 成武县| 武强县| 梧州市| 密云县| 濮阳县| 保靖县| 东乡| 泽州县| 洪泽县| 旺苍县| 沙湾县| 思南县| 勐海县| 商丘市| 禹城市| 绍兴县| 阳信县| 德兴市| 梅河口市| 佛山市| 黄山市| 岳普湖县| 青川县| 阳高县| 麟游县| 祁门县| 丹巴县| 大港区| 东安县| 陇南市| 金门县| 红原县| 丰宁| 长岭县| 南靖县| 文登市| 武汉市| 惠东县|