跳转到主内容
Knowledgebase
Home
Renesas Electronics China - Knowledgebase

在对ROM代码定制时,要求使用Intel 16进制格式。什么是Intel 16进制格式?

最新更新:2011年10月 06日

Question:

在对ROM代码定制时,要求使用Intel 16进制格式。什么是Intel 16进制格式?

Answer:

Intel16进制格式是在处理对象(机器语言代码)时使用的一种格式。在这种格式中,每个字节被转换成两个16进制数字(ASCII码)。
每条记录(1行代码)最多能表示255个字节的数据,根据数据的字节数,转换过程重复进行。下面是一个详细的例子。

":" 表示记录的开始。
 接下来两个16进制数字(10)表示记录的数据长度(数据的字节个数)。
 接下来的4个16进制数字 (0000)表示数据的地址。
 接下来的两个16进制数字(10)表示记录类型 (此例中,类型为数据记录)。
("00" 表示数据记录, "01"表示结束记录,"02"表示段记录。)
 这一段包含实际数据。这里的数据值为 "00"、 "01"、 "02",一直到 "0E"和 "0F"。
最后两个16进制数字用于错误校验 (校验和)。从数据长度开始将16进制值累加,验证总和的低8位是否为"00"。

最后在每行的末尾添加一个累加返回代码,这样记录就完整了。
第2行是结束记录,数据长度为  = "00",记录类型  = "01."



上述类型的记录只能表示16位地址 (64KB地址空间)。
一条段记录(记录类型02)可以用来指定更长的地址。 
下面的例子中,在第1行代码(已在上例中显示)之前插入了段记录。
段记录中指定的段值乘以16,乘积添加到下面记录的地址说明中。
此例中指定 "1000 (H)" () 作为段值,这样,下面的数据将被存放在10000H ~ 1000FH的地址范围内。

Suitable Products