乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      HEX文件解析

       昵稱18548705 2015-05-08

      HEX文件解析

                               

      HEX格式文件以行為單位,每行由“:”(0x3a)開始,以回車鍵結束(0x0d,0x0a)。行內(nèi)的數(shù)據(jù)都是由兩個字符表示一個16進制字節(jié),比如”01”就表示數(shù)0x01;”0a”,就表示0x0a。對于16位的地址,則高位在前低位在后,比如地址0x010a,在HEX格式文件中就表示為字符串”010a”。

      <0x3a>

      [數(shù)據(jù)長度1Byte]

      [數(shù)據(jù)地址2Byte]

      [數(shù)據(jù)類型1Byte]

      [數(shù)據(jù)nByte]

      [校驗1Byte]

      <0x0d>

      <0x0a>

       

      Example.hex

        原始

      1    :  10  0000  00  020003787FE4F6D8FD75812B02004A02  D6

      2    :10001000008FE493A3F8E493A34003F68001F20871

      3     :10002000DFF48029E493A3F85407240CC8C333C435

      4    :10003000540F4420C8834004F456800146F6DFE4A0

      5     :10004000800B01020408102040809000C2E47E0171

      6    :100050009360BCA3FF543F30E509541FFEE493A313

      7    :1000600060010ECF54C025E060A840B8E493A3FAF7

      8    :10007000E493A3F8E493A3C8C582C8CAC583CAF0B1

      9    :10008000A3C8C582C8CAC583CADFE9DEE780BEE432

      16   :0700F0001F70F31E80F022D7

      17   :00000001FF

      面對這一大串的十六進制碼,有沒有頭昏眼花的感覺呢?別急別急,經(jīng)過本文的介紹,你一定會愛上這個會讓你頭昏眼花的機器碼的!

      首先我們先介紹HEX文件的編碼格式,舉范例程序中第一行說明:

       :  10 0000 00 020003787FE4F6D8FD75812B02004A02 D6

      1 2  3    4                                 5  6

      為了方便解說,筆者將原始碼以空格區(qū)分成六個部分,在實際轉換的原始內(nèi)容應該沒有空格也沒有行號的。

      第1部分是HEX文件的起始格式,文件一開始應該是一個冒號作為起點;

      2部分的兩碼(10H)所代表的是該行總共具備多少個字節(jié)的數(shù)據(jù),以本行為例,應該有16個字節(jié),因為10H換算成十進制應該是16;

      第3部分的四碼所代表的是放置數(shù)據(jù)的開始位置,換句話說,本行的數(shù)據(jù)應該是放置在0000H~000FH 這段地址中;

      4部分的兩碼是檢查碼,所代表的是該行數(shù)據(jù)類型。

      00 ----數(shù)據(jù)記錄      
      01 ----文件結束記錄

      02 ----擴展段地址記錄
      04 ----擴展線性地址記錄

      這里就是0x00即為普通數(shù)據(jù)記錄。

      首先我們只處理數(shù)據(jù)類型為0x00及0x01的情況。0x02表示對應的存儲地址超過了64K,由于我的編程器只針對64K以下的單片機,因此在次不處理,0x04也是如此。

      '00' Data Record

      '01' End of File Record

      '02' Extended Segment Address Record

      '03' Start Segment Address Record

      '04' Extended Linear Address Record

      '05' Start Linear Address Record

      5部分則為數(shù)據(jù)存放區(qū),總共3216個字節(jié),有興趣的可以實際算算看,這里的機器碼已經(jīng)是標準的MCS-51指令,如果查表的話可以直接知道其功能,稍后的文章會再提到;

      6部分校驗值。

      什么叫做校驗值?所謂的校驗值是一種標準的校驗碼,把它加在每一行機器碼的最后,可以使每一行所有的十六進制值(兩個為一組),加總后所得到最后兩位十六進制碼應為 00H,如果你不太會十六進制運算的話,沒關系,Windows中有一個很好用的工具叫計算器,你可以切換到科學型計算的十六進制模式,將數(shù)值直接輸入,它就會自動幫你算好了。以本例來說,將所有的值相加所得到的值應該是:

      10H + 00H + 00H + 00H + 02H + 00H + 03H + 78H + 7FH + E4H + F6H + D8H+ FDH + 75H + 81H + 2BH + 02H + 00H + 4AH + 02H + D6H = 700H

      最后兩個碼果然為00H,有興趣的人可以把范例中的每一行都算算看,結果一定都是這樣的。

      每個HEX格式的最后一行都是固定為:

      :00000001FF

       

        本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
        轉藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多