4.4.3 记录类型的定义
优质
小牛编辑
138浏览
2023-12-01
2、记录变量的定义
在程序中,必须先说明记录类型,然后才能定义该记录类型的变量。记录变量是把其二进制位分成一个或多个字段的字节或字变量。其定义格式与其它类型变量的定义方式类似,具体如下:
[变量名] 记录名 <[字段值表]>
解释: | 1、变量名即为该记录类型的变量名,它可省缺。如果省缺,则不能用符号名来访问该内存单元; |
2、字段值表是给字段赋初值,中间用逗号','分开,其字段值的排列顺序及大小应与该记录说明时各字段相一致; | |
3、如果记录变量的某字段用其说明时的缺省值,那么,可用逗号来表示;如果所有字段都如此,则可省去字段值表,但必须保留一对尖括号""。 |
例如:
COLOR1 | COLOR <>, <1, 7, 0, 5>, <1, , 0, 7> | |
FLOAT1 | FLOAT <1, 23H, 0, 3>, <0, 89H, 1, 5> |
3、记录的专用操作符
操作符WIDTH和MASK是作用于记录类型的两个专用保留字,利用它们可得到记录类型的不同属性。
操作符WIDTH
操作符WIDTH返回记录或其字段的二进制位数,即其宽度。其一般书写格式如下:
WIDTH 记录名 或 WIDTH 记录字段名
假设有前面定义的记录类型COLOR,那么,WIDTHCOLOR的值为8,WIDTH BACK的值为3,WIDTHBLINK的值为1。
操作符MASK
操作符MASK返回一个8位或16位二进制数。在该二进制数中,被指定记录或字段使用的对应位的值为1,否则,其值为0。其一般书写格式如下:
MASK 记录名 或 MASK 记录字段名
假设有前面定义的记录类型FLOAT,那么,MASKEXP的值为000FH,MASK DATA的值为1FE0H,WIDTH DSIGN的值为2000H。
记录字段
记录字段名是一个特殊的操作符,它本身也是操作数,其返回值是该字段移到所在记录的最低位所需要的位数,即该字段最低位在记录中的位置。
假设有前面定义的记录类型FLOAT,那么,有:
MOV CL, EXP | 相当于 | MOV CL, 0 | |
MOV CL, DATA | 相当于 | MOVCL, 5 |