インテル拡張ヘキサ・ファイル(20ビット)は,スタート・セグメント・アドレス・レコード,拡張セグメント・アドレス・レコード,データ・レコード,およびエンド・レコードの4種類のレコード注により構成されます。
インテル拡張ヘキサ・ファイル(32ビット)は,スタート・リニア・アドレス・レコード,拡張リニア・アドレス・レコード,スタート・セグメント・アドレス,拡張セグメント・アドレス・レコード,データ・レコード,およびエンド・レコードの6種類のレコード注により構成されます。
インテル拡張ヘキサ・ファイルの構成と内容を以下に示します。
注 | 拡張セグメント・アドレス・レコード,およびデータ・レコードは繰り返されます。 |
各レコードは,各種フィールドにより以下の形で構成されます。
: XX XXXX XX DD......DD SS NL
(1) (2) (3) (4) (5) (6) (7)
|
|
|
|
レコード・マーク
|
|
バイト数
(5)の2桁ずつの16進数で表されるバイトのバイト数です。
|
|
ロケーション・アドレス
|
|
レコード・タイプ
05 : スタート・リニア・アドレス・レコード
04 : 拡張リニア・アドレス・レコード
03 : スタート・セグメント・アドレス
02 : 拡張セグメント・アドレス・レコード
00 : データ・レコード
01 : エンド・レコード
|
|
コード
コードの1バイトごとを2桁の16進数で表したものです。
|
|
チェック・サム
:,SS,NLを除くレコード内の各バイト値を16進数で加算した結果の2の補数です(2桁)。
|
|
ニュー・ライン(\n)
|
備考 | インテル・ヘキサ・フォーマットのロケーション・アドレスは2バイト(16ビット)です。
したがって,64Kの空間しか直接指定はできません。
それを拡張するために,16ビットの拡張アドレスを追加して1M(20ビット)の空間まで扱えるようにしたのがインテル拡張ヘキサ・フォーマットです。
具体的には,16ビットの拡張アドレスを指定するレコード・タイプを追加しています。
この追加した拡張アドレスの4ビットをシフトしてロケーション・アドレスと加算することで,20ビットのアドレスを表現できるようになっています。 |