Intel Hex - 将03记录类型转换为05,反之亦然

时间:2018-03-21 15:53:27

标签: hex intel

我正在尝试编写Intex HEX解析器。似乎扩展地址有两种样式(允许你处理大于64 kB的内存),并且这两种样式不应混合在同一个文件中:

  • 分段寻址
  • 线性寻址

我想编写一个解析器,它将以上述两种样式中的任何一种采用Intel HEX,并以上述任何一种样式输出。

除了03开始段地址)和05开始线性地址)之外,我已经处理了所有记录类型)。我基于维基百科文章的假设是,对于以下类型03的记录(忽略破折号 - 只是为了帮助注释):

:04-0000-03-00003800-C1
|_1|___2|_3|_______4|_5|

其中:

1 - 04 -> byte count
2 - 0000 -> address
3 - 03 -> record type (Start Segment Address)
4 - 00003800 -> data
5 - C1 -> checksum

如果我要将其转换为05类型的记录类型,则为:

:0400000500003800BF

我只需获取IP记录的03地址(最后2个数据字节),并将其设置为05类型的数据字段,填充{{1} }};完全忽略0000记录的数据部分的前2个字节(在此示例中为03)。

这是对的吗?我是否做出任何错误的假设/完全忽略了这一点?

0 个答案:

没有答案