Intel十六进制对象文件格式规范

4星 · 超过85%的资源 需积分: 14 10 下载量 147 浏览量 更新于2024-12-01 收藏 18KB PDF 举报
"Intel十六进制目标文件格式" Intel十六进制目标文件格式是一种用于Intel 8位、16位和32位微处理器的二进制对象文件的ASCII表示方式。这种格式最初由Intel公司定义,主要适用于编程器(如EPROM编程器)或硬件模拟器的输入。由于文件是以ASCII编码而非二进制形式存在,因此可以方便地存储在非二进制介质上,如纸质磁带、穿孔卡,也可以在CRT终端、行式打印机等设备上显示。 1. 文件结构与记录 Intel十六进制文件由一系列的记录组成,每个记录包含以下部分: - 记录起始符:通常是一个冒号(":"),标志着一个记录的开始。 - 记录长度:2个字符,表示数据字段的字节数(不包括记录长度和地址字段)。 - 地址字段:4个字符,表示数据字段中第一个字节在内存中的地址,从低到高顺序排列。 - 记录类型:1个字符,标识记录类型,如0表示数据记录,1表示结束记录,5表示开始段记录,6表示结束段记录。 - 数据字段:根据记录长度字段指定的数量的字符,表示要写入内存的数据。 - 校验和:2个字符,表示记录中所有其他字符的奇偶校验和,用于验证记录的正确性。 2. 数据记录 数据记录(记录类型0)包含实际的二进制数据,用于编程器加载到目标处理器的内存中。每个十六进制字符代表一个字节数据,以高四位在前,低四位在后的顺序排列。 3. 地址字段与内存映射 地址字段指示数据在内存中的位置,对于8位微处理器,地址范围通常是0x0000到0xFFFF。对于16位和32位处理器,地址范围会更大,但具体取决于处理器的地址总线宽度。 4. 段记录 开始段记录(记录类型5)和结束段记录(记录类型6)用于在某些系统中指定程序的开始地址和结束地址,这对于某些编程器或模拟器是必要的。 5. 校验和计算 校验和是通过将记录中除校验和字段外的所有字符的ASCII值进行求和,然后取反(模256)得到的。如果计算的校验和与记录中的校验和匹配,则认为记录无误。 6. 结束记录 文件的最后一个记录通常是结束记录(记录类型1),它表示文件的结束,并且通常有一个空的数据字段和一个校验和为FFH的记录。 7. 兼容性和应用 虽然Intel十六进制格式最初设计用于Intel微处理器,但它也被广泛应用于其他系统和平台,特别是在嵌入式系统和微控制器编程中。此外,许多编程工具和软件开发环境支持读取和生成这种格式的文件,使得它成为一种通用的标准。 Intel十六进制格式提供了一种简单而灵活的方式来传输和存储二进制数据,便于在不同的硬件和软件环境中进行通信和处理。