Article View: fj.lang.c
Article #637Re: [Q] インテル HEX 、インテル拡張 HEX フォーマットについて
From: mazda
Date: Tue, 24 Mar 1998 00:00
Date: Tue, 24 Mar 1998 00:00
57 lines
2715 bytes
2715 bytes
Eremiyah Suzuki wrote:
> このインテルHEX、インテル拡張HEXフォーマットのファイル形式の詳細
> を御存じの方、教えて下さい。
インテルHEXフォーマットについてですが、これは、各行が、コロン、デー
タ数、アドレス、レコードタイプ、実データ、チェックサムの順に並ぶテキスト
です。
たとえば、次のような11バイトのバイナリイメージ
************************************
* +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A *
* 3E 90 D3 0F DB 0C D3 0D C3 04 80 *
************************************
をインテルHEX形式で表現することを考えると、
データ数 = 11 = 0BH
アドレス = 8000H (後述)
レコードタイプ = 00H (後述)
チェックサム = B7H (後述)
であることから、次のファイル(filename.hex)となります。
*************************************
* :0B8000003E90D30FDB0CD30DC30480B7 *
* :00000001FF *
*************************************
但し、ここでは、11バイトの実データ(3EH ~ 80H)をメモリの 8000H から
格納すると仮定しており、レコードタイプは通常 00H、最終行は 01H となりま
す。
また、チェックサムは、各行でコロンを除くすべてのデータ(チェックサムを
含む)を足し算(桁あふれは捨てる)して 0 になるようなデータです。すなわ
ち、上記の例では、
0B+80+00+00+3E+90+D3+0F+DB+0C+D3+0D+C3+04+80=549H -> 49H -> この2の補数
をとり B7H
00+00+00+01 = 01H -> この2の補数
をとり FFH
となります。
データのサイズが大きい場合は、たとえば 32バイトずつ区切って行数を増や
します。
また、各行末(チェックサムの直後)には改行コード(0DH 0AH)を、ファイ
ル終端に終端コード(1AH)を置きます。
インテル拡張HEXフォーマットについては知りませんのであしからずご了承
ください。
--------
松田@都産技研
matuds0k@iri.metro.tokyo.jp
Technical Details
Message-ID:
<3517A32F.45F9@iri.metro.tokyo.jp>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailReferences:
<6eqn63$4kv$1@news01da.so-net.or.jp>Show Full Headers
Complete Article Headers
X-Google-Language: Japanese,JIS X-Google-Thread: 106434,1f85895d83605e28 X-Google-Attributes: gid106434,public From: mazda <matuds0k@iri.metro.tokyo.jp> Subject: Re: [Q] インテル HEX 、インテル拡張 HEX フォーマットについて Date: 1998/03/24 Message-ID: <3517A32F.45F9@iri.metro.tokyo.jp> X-Deja-AN: 337160046 Content-Transfer-Encoding: 7bit References: <6eqn63$4kv$1@news01da.so-net.or.jp> Mime-Version: 1.0 Reply-To: matuds0k@iri.metro.tokyo.jp Content-Type: text/plain; charset=iso-2022-jp Organization: sangiken Newsgroups: fj.lang.c