经典汇编语言教程:4.4.2 结构类型的定义

4.4.2 结构类型的定义

重复说明符DUP只能用于重复同一数据类型的变量说明,它不可以重复不同数据类型的变量说明。为了把一组不同类型的变量说明组合在一起,汇编语言提供了另一种复合数据类型说明符——结构类型说明符STRUC。

1、结构类型的定义

用STRUC和ENDS可以把一系列数据定义语句括起来作为一种新的、用户定义的结构类型。其一般说明格式如下:

结构名 STRUC [Alignment][, NONUNIQUE]

数据定义语句序列

结构名 ENDS

解释:结构名是一个合法的标识符,且具有唯一性。结构名代表整个结构类型,前后两个结构名必须一致。结构内被定义的变量为结构字段,变量名即为字段名。

一个结构中允许含有任意多个字段,各字段的类型和所占字节数也都可任意。如果字段有字段名,则字段名必须唯一。每个字段可独立存??/p>

 、对齐方式(Alignment):可用1、2或4来指定结构中字段的字节边界(Byteboundary),其缺省值为1。见4.3.2节中的有关叙述;

 、NONUNIQUE:要求结构中的字段必须用全名才能访问,见本小节中的“结构类型字段的引用”。

例如:
COURSESTRUC在左上例中,COURSE是结构名,它含有三个字段:NO、CNAME和SCORE,它们的类型分别是DD、DB和DW。
NODD ?
CNAMEDB 'Assember'
SCOREDW 0

COURSE

ENDS

上例中,COURSE是结构名,它含有三个字段:NO、CNAME和SCORE,这些字段的类型分别是DD、DB和DW。结构COURSE的字段分布如图4.7所示。

Assember
NOCNAMESCORE

图4.7 结构类型COURSE的字段分布示意图

从图4.7,我们不难看出:结构类型COURSE共占14个字节,其字段NO、CNAME和SCORE的偏移量分别为:0、4和12。

结构中的字段可以有字段名,也可以没有字段名。有字段名的字段可直接用该字段名来访问它,没有字段名的字段可以用该字段在结构中的偏移量来访问。

例如:
PEASON STRUC
NODD ? ;偏移量为0
NAMEDB 10 dup (?);偏移量为4
DB 1;偏移量为14

PEASOM

ENDS

在结构PEASON中,有二个字段有字段名,一个字段没有字段名,但不管有无字段名,我们都可用其偏移量来访问它。

上页:上一课 下页:下一课

经典汇编语言教程·相关目录

第1章 汇编语言的由来,数据类型第2章 CPU资源和存储器
第3章 操作数的寻址方式第4章 标识符和表达式
第5章 微机CPU的指令系统第6章 程序的基本结构
第7章 子程序和库第8章 输入输出和中断
第9章 宏第10章 应用程序设计
第11章 数值运算协处理器第12章 汇编语言和C语言
汇编语言重要附录Windows API函数大全
版权所有 © 中山市飞娥软件工作室 证书:粤ICP备09170368号