構文 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