SREC

简介

S-record档案格式是摩托罗拉公司在1970年代中期，为了摩托罗拉6800处理器所创的档案格式。针对摩托罗拉6800处理器及其他嵌入式系统的软件开发工具可以将可执行档及资料转换为S-record格式。PROM烧录器可以读取S-record，烧录到嵌入式系统的PROM或EPROM中。

其他HEX格式

也存在类似用途的其他ASCII档案格式。BPNF、BHLF及B10F是早期的二进制格式，不过档案较大，也没有可变性。十六进制格式用一个字元表示四个位元，相较于二进制格式用一个字元表示一个位元，档案比较精简。许多十六进制格式（包括S-record）的可变性较大，其中可以包括位址的资讯，因此其内容可以只对应PROM的一部分。Intel HEX格式常用在Intel的处理器上。Tek Hex是另一种HEX格式，其中包括了除错用的符号表。

文字列的结束字元

SREC记录之间会用一个或是多个ASCII字元的行分隔字元隔开，因此每一个记录就会占一行。此作法透过直观的分隔记录来提高易读性，而且在HEX记录之间的填充也可以提高语法分析器的效率。
产生HEX的程式一般会依其操作系统的习惯使用对应的行分隔字元。例如，Linux程式会用单一的LF字元（ 换行符号，16进制0A）作为一行的结尾，但Windows程式会用CR字元（回车符，16进制0D）之后接着LF字元，作为一行的结尾。

限制

记录长度：Unix手册中提到：“每个S-record记录的长度小于等于78个字元”。手册进一步的限制资料字段字元限制在64个字元（32个字节）以内。用8个字元表示位址的资料字段，若资料为64个字元，总长度为78个字元（2+2+8+64+2，此计算省略了记录尾端的终止符号或是换行符号)。这个档案可以用80字元宽的列表机打印。在手册下面有说明：“此说明只是针对记录总长度在78个字元的情形，不一定适用于所有情形。”。若省略此限制，S-record的最大长度为514字元：记录种类2个字元，字节数量2个位元（其值会是0xFF=255），以及位址、资料及检查码共2*255个字元。而且需要额外的空间储存换行符号以及字串结束字元。若记录长度太长，会有一些问题：“Motorola S-record格式定义允许一行到514个字元，另外加上行终结符号。EPROM烧录器需要有够大的行暂存器来处理这么长的资料，但有这么大暂存器的EPROM烧录器不多。”
资料字段：有些文件建议资料字段最长到32字节的资料（64个字元）。S0／S1／S2／S3的最小资料字段长度为0，最大资料资料字段长度视位址字段长度而定。因为字节数量最大值是255（0xFF），资料字段的长度为255减1（检查码）再减去位址字段的字节长度)。S0／S1 records最多可以到252字节的资料，S2 record最多可以到251字节的资料，S3 record最多可以到250字节的资料。
注解：SREC档案格式不支援注解，有些软件会省略开头不是S的资料行，也会省略检查码之后的字段，有时会有这些部分来写注解（但没有相容性）。例如CCS PIC编译器支援在Intel HEX档案最前面或是最后面的行，前面加上分号当成注解，其手册提到：“有些烧录器（尤其是MPLAB）不喜欢在档案最前面出现注解，因此我们有选项，可以把注解放在档案后面。

16位元的内存位址

S00F000068656C6C6F202020202000003CS11F00007C0802A6900100049421FFF07C6C1B787C8C23783C6000003863000026S11F001C4BFFFFE5398000007D83637880010014382100107C0803A64E800020E9S111003848656C6C6F20776F726C642E0A0042S5030003F9S9030000FC