構文 TYPE <式>
TYPE 演算子は<式>の種類によって、いろいろな数値を返します。
<式>がデータラベルの場合、そのデータ1つ当りのサイズを返します。<式>がコードラベルの場合、PTR 演算子の説明の表にあるような値を返します。
<式>が構造体型名またはレコード型名の場合、その構造体またはレコードのサイズを返します。
それ以外の場合、0を返します。
適用可能な式
TYPE 演算子はすべての式に適用できます。
以下では、TYPE 演算子とともに、後述の SIZEOF, LENGTHOF, LENGTH, SIZE の各演算子をまとめて例示します。
例
CODE1 LABEL NEAR CODE2 LABEL FAR DATA1 DB 0, 1, 2 DATA2 DW 0, 1, 2 DATA3 DB 8 DUP(0, 1, 2) DATA4 DW 8 DUP(7 DUP(0), 1, 2, 3) STAG STRUC DB 0, 1, 2, 3, 4 STAG ENDS SDAT STAG <>,<>,<> RTAG RECORD BLUE:3, RED:3, GREEN:3 RDAT RTAG <>,<>,<> MOV AX, TYPE CODE1 ; 0FFFFh MOV AX, TYPE CODE2 ; 0FFFEh MOV AX, TYPE DATA1 ; 1 MOV AX, TYPE DATA2 ; 2 MOV AX, TYPE DATA3 ; 1 MOV AX, TYPE DATA4 ; 2 MOV AX, TYPE STAG ; 5 MOV AX, TYPE SDAT ; 5 MOV AX, TYPE RTAG ; 2 MOV AX, TYPE RDAT ; 2 MOV AX, SIZEOF DATA1 ; 3 * 1 = 3 MOV AX, SIZEOF DATA2 ; 3 * 2 = 6 MOV AX, SIZEOF DATA3 ; 3 * 8 * 1 = 24 MOV AX, SIZEOF DATA4 ; 10 * 8 * 2 = 160 MOV AX, SIZEOF STAG ; 5 MOV AX, SIZEOF SDAT ; 5 * 3 = 15 MOV AX, SIZEOF RTAG ; 2 MOV AX, SIZEOF RDAT ; 2 * 3 = 6 MOV AX, LENGTHOF DATA1 ; 3 MOV AX, LENGTHOF DATA2 ; 3 MOV AX, LENGTHOF DATA3 ; 3 * 8 = 24 MOV AX, LENGTHOF DATA4 ; 10 * 8 = 80 MOV AX, LENGTHOF SDAT ; 3 MOV AX, LENGTHOF RDAT ; 3 MOV AX, LENGTH DATA1 ; 1 MOV AX, LENGTH DATA2 ; 1 MOV AX, LENGTH DATA3 ; 8 MOV AX, LENGTH DATA4 ; 8 MOV AX, SIZE DATA1 ; 1 MOV AX, SIZE DATA2 ; 2 MOV AX, SIZE DATA3 ; 8 * 1 = 8 MOV AX, SIZE DATA4 ; 8 * 2 = 16