2、记录变量的定义

在程序中,必须先说明记录类型,然后才能定义该记录类型的变量。记录变量是把其二进制位分成一个或多个字段的字节或字变量。其定义格式与其它类型变量的定义方式类似,具体如下:

[变量名]  记录名 <[字段值表]>

解释:

1、变量名即为该记录类型的变量名,它可省缺。如果省缺,则不能用符号名来访问该内存单元;

2、字段值表是给字段赋初值,中间用逗号','分开,其字段值的排列顺序及大小应与该记录说明时各字段相一致;

3、如果记录变量的某字段用其说明时的缺省值,那么,可用逗号来表示;如果所有字段都如此,则可省去字段值表,但必须保留一对尖括号"<"、">"。

例如:

COLOR1 COLOR <>, <1, 7, 0, 5>, <1, , 0, 7>
FLOAT1 FLOAT <1, 23H, 0, 3>, <0, 89H, 1, 5>

3、记录的专用操作符

操作符WIDTHMASK是作用于记录类型的两个专用保留字,利用它们可得到记录类型的不同属性。

操作符WIDTH返回记录或其字段的二进制位数,即其宽度。其一般书写格式如下:

WIDTH 记录名 或 WIDTH 记录字段名

假设有前面定义的记录类型COLOR,那么,WIDTH COLOR的值为8,WIDTH BACK的值为3,WIDTH BLINK的值为1。

操作符MASK返回一个8位或16位二进制数。在该二进制数中,被指定记录或字段使用的对应位的值为1,否则,其值为0。其一般书写格式如下:

MASK 记录名 或 MASK 记录字段名

假设有前面定义的记录类型FLOAT,那么,MASK EXP的值为000FH,MASK DATA的值为1FE0H,WIDTH DSIGN的值为2000H。

记录字段名是一个特殊的操作符,它本身也是操作数,其返回值是该字段移到所在记录的最低位所需要的位数,即该字段最低位在记录中的位置。

假设有前面定义的记录类型FLOAT,那么,有:

MOV CL, EXP 相当于 MOV CL, 0
MOV CL, DATA 相当于 MOV CL, 5