飞相关加点第?章氢杂江编程手设计 第7章复杂汇编程序设计 71结构 7,2记录 73联合 74应用举例 BACK
第7章 复杂汇编程序设计 第7章 复杂汇编程序设计 7.1 结构 7.2 记录 7.3 联合 7.4 应用举例
飞相关加点第?章氢杂江编程手设计 7.1结构 711结构的定义 用 STURO和ENDS把一系列数据定义语句括起来就成了一个结 构 格式: 结构名 STRUC 结构名ENDS 功能:定义结构类型的数据,但并不真正给结构分配存储空 间,只是说明包括结构名、域名及其数据类型在内的结构的类型
第7章 复杂汇编程序设计 7.1 结 构 7.1.1 结构的定义 用STURC和ENDS把一系列数据定义语句括起来就成了一个结 构。 格式: 结构名 STRUC 结构名 ENDS 功能:定义结构类型的数据,但并不真正给结构分配存储空 间,只是说明包括结构名、域名及其数据类型在内的结构的类型
飞相关加点第?章氢杂江编程手设计 说明: ①结构名由用户定义,结构内数据定义语句中的变量名称 为结构字段名,简称为字段名; ②结构的使用应是先定义后使用,即应在为结构数据分配 空间之前定义; ③结构定义中的结构名必须有且 STURO和ENDS前的结构 名必须一致
第7章 复杂汇编程序设计 说明: ① 结构名由用户定义,结构内数据定义语句中的变量名称 为结构字段名,简称为字段名; ② 结构的使用应是先定义后使用,即应在为结构数据分配 空间之前定义; ③ 结构定义中的结构名必须有且STURC和ENDS前的结构 名必须一致
飞相关加点第?章氢杂江编程手设计 例7-1 SAFY STRUC No DB NAME DB 'ABCDEFG SAGE DW DEP DB COMPUTER SAFY ENDS 在结构SAFY中,定义了4个字段,分别是NO、NAME、 DEP和SAGE字段,字段NO、NAME和DEP是字节型数据, SAGE是字型数据
第7章 复杂汇编程序设计 例7-1 SAFY STRUC NO DB ? NAME DB 'ABCDEFG' SAGE DW ? DEP DB 'COMPUTER' SAFY ENDS 在结构SAFY中,定义了4个字段,分别是NO、NAME、 DEP和SAGE字段,字段NO、NAME和DEP是字节型数据, SAGE是字型数据
飞相关加点第?章氢杂江编程手设计 7.12结构的存储分配和预置 结构定乂仅仅是告诉汇编程序存在这样一种形式的变量, 只有进行结构的存储分配和预置后,才使结构变量真正占有内 存,也才能使用结构变量 格式 结构变量名结构名 功能:为结构变量分配存储空间及初始化
第7章 复杂汇编程序设计 7.1.2 结构的存储分配和预置 结构定义仅仅是告诉汇编程序存在这样一种形式的变量, 只有进行结构的存储分配和预置后,才使结构变量真正占有内 存,也才能使用结构变量。 格式: 结构变量名 结构名 功能:为结构变量分配存储空间及初始化
相关如识点第7章复杂汇编程设计 说明: 1)结构名是结构定义时用的名字,结构变量名与具体的存 储空间及数据相联系,程序中可以直接引用它; (2)字段值表用来给结构变量赋初值。规定如下: ①各字段值的排列顺序及类型应与结构定义时相一致,中 间以逗号分隔; ②如果采用在结构定义时的初值,仅写一个逗号即可,若 所有字段均采用在结构定义时的初值,仅写一个尖括号即可; ③只有在结构定义中具有一项数据的字段(包括字符串字段) 才可重新赋初值; ④在结构预置中,若分配给结构的数据有多个且相同,可 以使用DUP操作符; 尖括号什么时侯也不可省
第7章 复杂汇编程序设计 说明: (1) 结构名是结构定义时用的名字,结构变量名与具体的存 储空间及数据相联系,程序中可以直接引用它; (2) 字段值表用来给结构变量赋初值。规定如下: ① 各字段值的排列顺序及类型应与结构定义时相一致,中 间以逗号分隔; ② 如果采用在结构定义时的初值,仅写一个逗号即可,若 所有字段均采用在结构定义时的初值,仅写一个尖括号即可; ③ 只有在结构定义中具有一项数据的字段(包括字符串字段) 才可重新赋初值; ④ 在结构预置中,若分配给结构的数据有多个且相同,可 以使用DUP操作符; ⑤ 尖括号什么时侯也不可省略
飞相关加点第?章氢杂江编程手设计 例72 Al SaFY仅对SAFY结构中的NO、 NAME和SAGE这3个字段赋初值,第4个字段采用结构定义时的 值;对A2SAFY◇而言,是采用结构定义时的初值 已经定义了一个结构之后,就可以通过结构的存储分配和 预置得到多个结构变量。如前所述,可将学生简历定义为一个 结构,根据每个学生的情况组成多个字段值表,再用多条结构 预置语句就可以产生每个学生的登记表
第7章 复杂汇编程序设计 例7-2 A1 SAFY A2 SAFY<> 其中,A1 SAFY仅对SAFY结构中的NO、 NAME和SAGE这3个字段赋初值,第4个字段采用结构定义时的 值;对A2 SAFY<>而言,是采用结构定义时的初值。 已经定义了一个结构之后,就可以通过结构的存储分配和 预置得到多个结构变量。如前所述,可将学生简历定义为一个 结构,根据每个学生的情况组成多个字段值表,再用多条结构 预置语句就可以产生每个学生的登记表
飞相关加点第?章氢杂江编程手设计 713结构及其字段的引用 要访问结构变量,可以直接写结构变量名。要访问结构变量 中某一字段,可采用两种方法: (1)结构变量名结构字段名; (2)预先将结构变量的起始地址、偏移量送往某个地址寄存 器,再用[地址寄存器名]代替结构变量名
第7章 复杂汇编程序设计 7.1.3 结构及其字段的引用 要访问结构变量,可以直接写结构变量名。要访问结构变量 中某一字段,可采用两种方法: (1) 结构变量名·结构字段名; (2) 预先将结构变量的起始地址、偏移量送往某个地址寄存 器,再用[地址寄存器名]代替结构变量名
飞相关加点第?章氢杂江编程手设计 例7-3 MOAL,ANO;结构变量的访问采用“结构变量名·结 构字段名”的方法 或 MOV BX, OFFSETA1;结构变量的访问采用预先将结构 变量的起始地址, MOVAL,BⅪ]NO;偏移量送BX地址寄存器,再用 BX代替A1的方法
第7章 复杂汇编程序设计 例7-3 MOV AL,A1.NO ;结构变量的访问采用“结构变量名·结 构字段名”的方法 或 MOV BX,OFFSET A1 ;结构变量的访问采用预先将结构 变量的起始地址, MOV AL,[BX].NO ;偏移量送BX地址寄存器,再用 [BX]代替A1的方法
飞相关加点第?章氢杂江编程手设计 例7-4引用结构,在数据段定义和预置结构,在代码段引用结构。 ;定义结构 LIKE STRUC TO DW O FRM DW INO DB 99 DUP(?) LIKE ENDS ;存储分配和预置结构 MAS LIKE TXNLⅠKE CHA LIKE 500 DUP(< 预置500个结构变量 ;将CHA中所有FRM字段预置0
第7章 复杂汇编程序设计 例7-4 引用结构,在数据段定义和预置结构,在代码段引用结构。 ;定义结构 LIKE STRUC TO DW 0 FRM DW ? INO DB 99 DUP(?) LIKE ENDS ;存储分配和预置结构 MAS LIKE TXN LIKE CHA LIKE 500 DUP() ;预置500个结构变量 ;将CHA中所有FRM字段预置0