HEX文件格式

开打Hex文件,如图下所示:

:020000040800F2
:100000001013002089010008950C00088D0C0008D1
:10001000910C00084302000835140008000000009D

.............

:08CAD000050002040608000045

:04000005080000ED02
:00000001FF

文件格式

1、以行为单位。

2、每行开头是“:“(0x3A),结尾”回车换行“(0x0D,0x0A.)。

3、中间所有内容都是一字符形式表现的。若数据是”0x1A“,在HEX中就是”0x31 0x41“。

4、HEX文件格式:”LLAAAATT【DD.----】CC“。

代号 字段 长度
: : 1字节
LL 数据长度 1字节
AAAA 数据地址 2字节
TT 数据类型 1字节
DD-- 数据 N字节
CC 校验 1字节
回车换行 0x0D 0x0A 2字节回车换行

TT数据类型:

00->数据记录

01->用来标识文件记录的结束

02->用来标识扩展段地址

03->开始段地址

04->用来标识扩展线性地址(虚地址)

05->开始线性地址(虚地址)

 CC校验和:

校 验和的计算是通过将记录当中所有十六进制编码数字对的值相加, 以256 为 模 进 行以下 补 足.

例如:

 :10246200464C5549442050524F46494C4500464C33

33 是这个记录的校 验和0x33计算方法如下:100H-(10H+24H+62H+00H+46H+4CH+55H+49H+44H+20H+50H+52H+4FH+46H+49H+4CH+45H+00H+46H+4CH) % 100H=33H;

扩展线性地址记录(HEX386)

 

扩展线性地址记录又称为32位地址记录或者HEX386记录。 这些记录包含了数据地址的高16位。T扩展线性地址记录总是有两个数据,格式如下

:020000040800F2

这里:

02 是记录的数据位数
0000 对于扩展线性地址记录,这部分都是零。
04 代表记录类型是扩展线性地址记录。
0800 是地址的高16位。
F2 是以下计算结果的和:01h + NOT(02h + 00h + 00h + 04h + 08h + 00h).

当一个扩展线性地址被读取时,在数据域中的扩展线性地址被储存并且运用到后来的记录的读取中。线性地址保持有效直到被另外一个扩展地址所改变。数据的绝对地址由扩展线性地址和偏移地址相加获得。

下面这个例子可以说明这个过程。

数据记录的地址域中的地址                          2462

扩展线性地址记录的数据域                      0800

                                              --------

绝对地址:                                    08002462

 

扩展段地址记录(HEX86)
扩展段地址记录(也称HEX86)包括数据地址段的4-19位。扩展段地址记录总有两个数据位。一般如下:

:020000021200EA

这里:

02 在本记录中的数据的位数。
0000对于扩展段地址记录,这部分都是零。
02是记录类型,也就是扩展段地址记录。
1200 是地址段
EA 是如下计算的结果01h + NOT(02h + 00h + 00h + 02h + 12h + 00h).
当一个扩展段地址被读取时,储存在数据域的扩展段地址被保存,应用到后面的记录,并且保持有效,直到被新的扩展地址所代替。绝对地址的获得是段地址乘以16加上偏移地址

以下这个例子说明这个过程。

记录地址域获得的地址:                2462
扩展段地址的数据域:                   1200
                                  --------
绝对存储地址:                    00014462

 

结束文件记录:
一个英特尔HEX文件必须由一个EOF文件来结束。一个结束文件记录一般这样出现:

:00000001FF

这里:
00是记录的数据位数.
0000 是数据在存储器中定位的数据的地址.在结束文件中的地址是没有意义和可以忽略的。一个 0000h 的地址是很典型的。

01是记录类型,结束文件记录

FF 由这样计算得出:01h + NOT(00h + 00h + 00h + 01h)

起始线性地址类型记录:

 只使用于803386.x86的寻址方面的知识。

起始段地址类型记录:

只适用于8086/800186.

                                                           LZ电子

                                                     QQ:3537572751

posted @ 2017-11-15 14:04  LZ电子  阅读(5618)  评论(1编辑  收藏  举报