https://en.wikipedia.org/wiki/Intel_HEX

1, Intel Hex每行的组成

开始标志+Byte数+地址+数据类型+数据+Checksum

2, 开始标志

冒号:,ASCII码 0x3A

3, Byte数量

1 Byte,实际有效数据的个数,即数据段的字节数。从1开始计数。

4, 地址

2 Bytes,指示接下来的数据段数据存储的偏移地址。

为什么是偏移地址呢?因为该地址段长度只有2 Bytes,假如存储区大小超过64KB,如果采用绝对地址,将有部分空间无法访问。

5, 数据类型

简单解释:

(1) 00 :16位寻址空间的数据数据;

(2) 01:文件结束。此时数据长度应标记为00。

(3) 02:扩展段地址。2 Bytes。

为了访问 1MB 的空间,需要的地址长度为 220,而“开始地址”段只有2 Bytes,能访问的空间只有 (1~216)。为此,只需增加一个地址定义,协定该地址里面的值应该先乘以16再使用,如此,该地址能访问的空间即为:216 ~ (216 x 24 = 220)。

当为此数据类型时,地址段的值应被忽略(通常标为0x00)。

(4) 03:RSVP

(5) 04:扩展线性地址。数据长度 2 Bytes。

a) 为访问 4GB 地址而定义。4G = 232。该段表示高16位。

b) 低16位由接下来的00数据类型定义。假如接下来没有00类型数据,默认高16位地址为0x0000。

c) 该高位地址保持到下一个04类型数据为止。

( 6) 05:RSVP

6, 数据

7, checksum

除开开始标志和Checksum本身的所有数据异或结果的补码。

Intel HEX file结构的更多相关文章

  1. 如何读懂 Intel HEX 文件

    什么是 Intel HEX 文件格式   转自:http://www.cnblogs.com/imapla/archive/2013/03/16/2926133.htmlIntel HEX 文件是遵循 ...

  2. intel hex 格式的几个链接

    intel hex GENERAL: INTEL HEX FILE FORMAT Intel Hex文件格式说明 - starspace - 博客园 C# Hex文件转bin文件 - bule - 博 ...

  3. 【转】Intel HEX介绍

    记录格式 Intel HEX由任意数量的十六进制记录组成.每个记录包含5个域,它们按以下格式排列: :llaaaatt[dd...]cc 每一组字母对应一个不同的域,每一个字母对应一个十六进制编码的数 ...

  4. Linux_Struct file()结构体

    struct file结构体定义在/linux/include/linux/fs.h(Linux 2.6.11内核)中,其原型是:struct file {        /*         * f ...

  5. Intel hex 文件格式解密

    Intel hex 文件常用来保存单片机或其他处理器的目标程序代码.它保存物理程序存储区中的目标代码映象.一般的编程器都支持这种格式. Intel hex 文件全部由可打印的ASCII字符组成(可以用 ...

  6. Linux--struct file结构体

    struct file(file结构体): struct file结构体定义在include/linux/fs.h中定义.文件结构体代表一个打开的文件,系统中的每个打开的文件在内核空间都有一个关联的  ...

  7. 2018.5.2 file结构体

    f_flags,File Status Flag f_pos,表示当前读写位置 f_count,表示引用计数(Reference Count): dup.fork等系统调用会导致多个文件描述符指向同一 ...

  8. Pwn with File结构体(一)

    前言 本文由 本人 首发于 先知安全技术社区: https://xianzhi.aliyun.com/forum/user/5274 利用 FILE 结构体进行攻击,在现在的 ctf 比赛中也经常出现 ...

  9. Pwn with File结构体(四)

    前言 前面几篇文章说道,glibc 2.24 对 vtable 做了检测,导致我们不能通过伪造 vtable 来执行代码.今天逛 twitter 时看到了一篇通过绕过 对vtable 的检测 来执行代 ...

随机推荐

  1. Hibernate: Truly Understanding the Second-Level and Query Caches--reference

    I've written multiple articles here at Javalobby on the Hibernate O/R mapping tool, and they are usu ...

  2. oracle 基础SQL语句 多表查询 子查询 分页查询 合并查询 分组查询 group by having order by

    select语句学习 . 创建表 create table user(user varchar2(20), id int); . 查看执行某条命令花费的时间 set timing on: . 查看表的 ...

  3. java与c++的访问权限的问题

    转自网络:http://blog.sina.com.cn/s/blog_4bc954d30100wtxe.html 权限的理解重要理解什么是可见什么是不可见 首先声明:java中,friendly这个 ...

  4. Tomcat启动报错 Failed to start component [StandardServer[8005]]解决

    SEVERE: The required Server component failed to start so Tomcat is unable to start. org.apache.catal ...

  5. tab选项卡

    1 <!doctype html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.or ...

  6. JMS简介

    任何一个系统从整体上来看,其实质就是由无数个小的服务或事件(我们可以称之为事务单元)有机地组合起来的.对于系统中任何一个比较复杂的功能,都是通过调用各个独立的事务单元以实现统一的协调运作而实现的.现在 ...

  7. 五个在XML文档中预定义好的实体

    下面是五个在XML文档中预定义好的实体: < < 小于号 > > 大于号 & & 和 &apos; ' 单引号 " " 双引号 实体 ...

  8. 汉诺塔的问题:4个柱子,如果塔的个数变位a,b,c,d四个,现要将n个圆盘从a全部移到d,移动规则不变

    四柱汉诺塔问题的求解程序.解题思路:如a,b,c,d四柱. 要把a柱第n个盘移到目标柱子(d柱),先把上层 分两为两部份,上半部份移到b柱,下半部分移到c柱,再把第n盘移到 目标柱子,然后,c柱盘子再 ...

  9. asp.net_MVC_jq三级联动

    数据库结构 建立三张表,Association,Team,Player 关系如下: 建立asp.net MVC 3项目,在HomeController.cs中利用Linq to SQL获取数据 首先实 ...

  10. Javascript中函数调用和this的关系

    例子先行: var myObject={ foo:"bar", func:function(){ var self=this; console.log("outerfun ...