構造体は、複数のデータ要素を 1 つにまとめます。構造体を使用すると、複数の要素からなるデータを単一のデータのように宣言できます。各データ要素は「フィールド」名で参照できます。
STRUC 文は構造体型宣言の開始を指定し、ENDS 文は終了を指定します。2 つの文の間には複数のデータ定義文を記述でき、これらが構造体のフィールドになります。STRUC および ENDS 文は構造体型(構造体タグ)を宣言するだけです。実際の構造体データを作成するには、後述の「構造体データ作成文」を改めて記述する必要があります。
構文 tag STRUC data-definitions ... tag ENDS 例 DATE STRUC YEAR DW ? MONTH DB ? DAY DB ? DATE ENDS
tag は必須です。対応する STRUC 文と ENDS 文の tag を一致させる必要があります。
data-definitions には、任意個のデータ定義文を記述できます。データ定義文にラベルを指定すると、その名前が構造体のフィールド名として記憶されます。フィールド名は、構造体フィールド演算子(.)で参照でき、構造体先頭からのオフセットバイト数を表します。
それぞれのデータ定義文には、デフォルトの初期値を指定できます。次の例は、構造体型 DATE をデフォルトの初期値 1991,6,1 で宣言しています。
DATE STRUC YEAR DW 1991 MONTH DB 6 DAY DB 1 DATE ENDS
あらかじめ宣言した構造体型を使用して、実際の構造体データを作成します。
構文 [label] tag < [value ,...] > ,... 例 ABC DATE <> DATE <> ABC DATE <>,<>,<> ABC DATE <1989,12,10>,<1991,2,25> ABC DATE <1964> ABC DATE <,1,1> ABC DATE 10 DUP(<>)
label は、このデータ領域に付けるラベルで、省略できます。
tag は、あらかじめ STRUC 文によって宣言しておいた構造体型名です。
value は、データ領域の初期値です。構造体の各フィールドに対応するデータを < > 内にカンマで区切って並べます。省略すると、構造体型宣言で指定したデフォルトの初期値が使用されます。初期値は山型括弧(< >)で囲む必要があります。
DUP 演算子も使用できます。この場合は、< > で囲まれた部分を単一のデータとして DUP 演算子に渡します。