7.1.3结构变量及其字段的访问 1.结构变量的访问 与简单变量一样,按名访问。 2.结构字段的访问 可以采用下列种方法。 ①计算字段所在地址,通过地址访问。例如 mov byte ptr P1[30],10 ②使用点操作符()。基本形式为 结构变量名字段名 全等价于 结构变量名+字段在结构中的位移量 例如 mov PI Age, 10 等价于 mov byte ptr Pl+30,10 2021//21 80x86汇编语言程序设计
2021/1/21 80x86汇编语言程序设计 7.1.3 结构变量及其字段的访问 1. 结构变量的访问 与简单变量一样,按名访问。 2. 结构字段的访问 可以采用下列2种方法。 ① 计算字段所在地址,通过地址访问。例如: mov byte ptr P1[30], 10 ② 使用点操作符(.)。基本形式为: 结构变量名.字段名 完全等价于 结构变量名 + 字段在结构中的位移量 例如: mov P1.Age, 10 ; 等价于 mov byte ptr P1 + 30, 10
3.说明 对于MASM6ⅹ,当通过指针访问结构字段时,必须以伪字段的形式明确指出结构类型 名。例如 PPtr dd PI bx, PPtr mov es:|bx] Person Age,10;等价于 mov byte ptr es:30bx],10 4.结构应用实例 例71等 2021//21 80x86汇编语言程序设计
2021/1/21 80x86汇编语言程序设计 3. 说明 对于MASM 6.x,当通过指针访问结构字段时,必须以伪字段的形式明确指出结构类型 名。例如: PPtr dd P1 les bx, PPtr mov es:[bx].Person.Age, 10 ; 等价于 mov byte ptr es:30[bx], 10 4. 结构应用实例 例7.1等
7.2宏指令 7.2.1宏定义、宏调用与宏展开 1.宏定义 由伪指令 MACRO与ENDM实现。形式如下: 宏指令名 MACRO[形式参数表] 宏体 ENDM 2.宏调用 形式如下: 宏指令名实在参数表] 3.宏展开 当源程序被汇编时,MASM用相应的宏体取代每个宏调用,并用实在参数按位置替换 宏定义中的形式参数 2021//21 80x86汇编语言程序设计
2021/1/21 80x86汇编语言程序设计 7.2 宏指令 7.2.1 宏定义、宏调用与宏展开 1. 宏定义 由伪指令MACRO与ENDM实现。形式如下: 宏指令名 MACRO [形式参数表] ... ; 宏体 ENDM 2. 宏调用 形式如下: 宏指令名 [实在参数表] 3. 宏展开 当源程序被汇编时,MASM用相应的宏体取代每个宏调用,并用实在参数按位置替换 宏定义中的形式参数
4.说明 实在参数的类型与顺序应与宏定义时的形式参数一致。 宏展开时,若实在参数的个数多于形式参数,则忽略多余的实在参数;若实 在参数的个数少于形式参数,则多余的形式参数为空。 宏定义只是告诉MASM用一个名字来表示一段语句序列,其本身不被汇编。 ■宏指令的参数非常灵活,可以出现在指令的操作数或操作码部分,MASM在 宏展开时对参数进行文本替换。 5.实例 2021//21 80x86汇编语言程序设计
2021/1/21 80x86汇编语言程序设计 4. 说明 ▪ 实在参数的类型与顺序应与宏定义时的形式参数一致。 ▪ 宏展开时,若实在参数的个数多于形式参数,则忽略多余的实在参数;若实 在参数的个数少于形式参数,则多余的形式参数为空。 ▪ 宏定义只是告诉MASM用一个名字来表示一段语句序列,其本身不被汇编。 ▪ 宏指令的参数非常灵活,可以出现在指令的操作数或操作码部分,MASM在 宏展开时对参数进行文本替换。 5. 实例