灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:2425回复:0

结构类型变量的定义

楼主#
更多 发布于:2012-09-10 18:58

2、结构类型变量的定义

在定义某个结构类型后,程序员就可以说明该结构类型的内存变量。它的说明形式与前面介绍的简单数据类型的变量说明基本上一致。其定义格式如下:

[变量名] 结构名 <[字段值表]>

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

2)、字段值表是给字段赋初值,中间用逗号’,’分开,其字段值的排列顺序及类型应与该结构说明时各字段相一致;

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

例如:

COURSE1 COURSE <>;使用缺省的初值

COURSE2 COURSE <1, ’Pascal’, 60>

COURSE3 COURSE <2, , 84> ;使用缺省的课程名

PEASON1 PEASON<1000, ’张 三’, 34>

3、结构类型字段的

定义了结构类型的变量后,若要访问其结构中的某个字段,则可采用如下形式:

结构变量名.字段名

该方式与高级语言的字段方式完全一致,我们还可用偏移量来访问其中的某个字段,但此方法不直观,变动性大,所以,一般情况下,不提倡使用此方法。

例如:

EXAM1STRUC

F1DW ?

F2DB ?

EVEN;偶对齐

F3DW ?

EXAM1ENDS

E1EXAM1 <1234H,’A’,8765H>;定义结构EXAM1的一个变量E1

下面二种方法都可以把结构变量E1中字段的内容赋给寄存器AX,但如果在字段F3之前增加或减少了字段,那么,这些需要改变吗?

(1)、用字段名直接

MOV AX, E1.F3

(2)、用字段的偏移量间接

LEA SI, E1

MOV AX, [SI+4]     ;其中4是字段F3的偏移量

喜欢0 评分0
游客

返回顶部