人民邮电出版社:高等学校计算机专业教材《80x86汇编语言程序设计》课程电子教案(PPT课件讲稿)第7章 汇编语言的扩展

第7章汇编语言的扩展 讲授要点 结构的定义与访问方法。 宏指令与重复块的基本用法。 条件汇编的用途 ■多模块程序设计的基本方法。 2021//21 80x86汇编语言程序设计
2021/1/21 80x86汇编语言程序设计 第7章汇编语言的扩展 讲授要点 ▪ 结构的定义与访问方法。 ▪ 宏指令与重复块的基本用法。 ▪ 条件汇编的用途。 ▪ 多模块程序设计的基本方法

7.1结构 7.1.1结构类型的定义 1.定义方法 使用伪指令 STRUCT与ENDS。形式如下 结构名 STRUCT 字段定义 结构名END 说明 类型定义本身不占内存空间。 2021//21 80x86汇编语言程序设计
2021/1/21 80x86汇编语言程序设计 7.1 结构 7.1.1 结构类型的定义 1. 定义方法 使用伪指令STRUCT与ENDS。形式如下: 结构名 STRUCT ... ; 字段定义 结构名 END 说明: 类型定义本身不占内存空间

2.结构定义例 Person struct PName db *水******** ,10个字符 Dept 20dup(?) db Address db 30dup(?) Person 2021//21 80x86汇编语言程序设计
2021/1/21 80x86汇编语言程序设计 2. 结构定义例 Person struct PName db '**********' ; 10个字符 Dept db 20 dup (?) Age db 0 Address db 30 dup (?) Person ends

7.1.2结构变量的定义 1.定义方法 结构变量名结构名{字段初值表 结构变量名结构名重复次数DUP({字段初值表}) 2.定义时需遵循的规则 各字段值的类型及排列顺序必须与结构类型定义时一致。 对于初值表中为空的字段,以结构类型定义时给出的值作为初始值。 只有单项字段或字符串字段才能在结构变量定义时赋值。 对于字符串字段,指定的串不能超出结构类型定义时给出的长度。 2021//21 80x86汇编语言程序设计
2021/1/21 80x86汇编语言程序设计 7.1.2 结构变量的定义 1. 定义方法 结构变量名 结构名 {字段初值表} 结构变量名 结构名 重复次数 DUP ( {字段初值表} ) 2. 定义时需遵循的规则 ▪ 各字段值的类型及排列顺序必须与结构类型定义时一致。 ▪ 对于初值表中为空的字段,以结构类型定义时给出的值作为初始值。 ▪ 只有单项字段或字符串字段才能在结构变量定义时赋值。 ▪ 对于字符串字段,指定的串不能超出结构类型定义时给出的长度

3.结构变量定义例 P1 Person 4个字段均以类型定义时给定的值作为初始值 P2 Person{ Zhang,20,};为字段 PName与Age指定了初始值 P3 Person 50 dup(o) 定义了一个含有50个元素的结构数组 2021//21 80x86汇编语言程序设计
2021/1/21 80x86汇编语言程序设计 3. 结构变量定义例 P1 Person { } ; 4个字段均以类型定义时给定的值作为初始值 P2 Person {'Zhang', , 20, } ; 为字段PName 与Age指定了初始值 P3 Person 50 dup ( { } ) ; 定义了一个含有50个元素的结构数组

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. 实例

7.2.2与宏有关的伪指令 1.L0CAL伪指令 LOCAL用来指定宏内局部符号。形式如下 LOCAL符号名, ,符号名 作用:在宏展开时,MASM将源文件中的所有局部符号统一按出现次序替换为唯一的标识 符(??0000?FFF),以避免符号的重复定义。 2.EXIM伪指令 用来立即终止宏展开,通常与条件汇编结合使用。MASM忽略 EXITM与ENDM之间的所 有语句。 3.实例 2021//21 80x86汇编语言程序设计
2021/1/21 80x86汇编语言程序设计 7.2.2 与宏有关的伪指令 1. LOCAL伪指令 LOCAL用来指定宏内局部符号。形式如下: LOCAL 符号名,...,符号名 作用:在宏展开时,MASM将源文件中的所有局部符号统一按出现次序替换为唯一的标识 符(??0000 ~ ??FFFF),以避免符号的重复定义。 2. EXITM 伪指令 用来立即终止宏展开,通常与条件汇编结合使用。MASM忽略EXITM与ENDM之间的所 有语句。 3. 实例
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 人民邮电出版社:高等学校计算机专业教材《80x86汇编语言程序设计》课程电子教案(PPT课件讲稿)第6章 过程.ppt
- 人民邮电出版社:高等学校计算机专业教材《80x86汇编语言程序设计》课程电子教案(PPT课件讲稿)第5章 基本控制结构.ppt
- 人民邮电出版社:高等学校计算机专业教材《80x86汇编语言程序设计》课程电子教案(PPT课件讲稿)第4章 汇编语言程序格式.ppt
- 人民邮电出版社:高等学校计算机专业教材《80x86汇编语言程序设计》课程电子教案(PPT课件讲稿)第3章 80x86指令系统.ppt
- 人民邮电出版社:高等学校计算机专业教材《80x86汇编语言程序设计》课程电子教案(PPT课件讲稿)第2章 80x86计算机系统组织.ppt
- 人民邮电出版社:高等学校计算机专业教材《80x86汇编语言程序设计》课程电子教案(PPT课件讲稿)第1章 基础知识.ppt
- 《数据结构》课程教学资源:第一章 绪论.ppt
- 《数据结构》课程教学资源:第五章 数组和广义表.ppt
- 《数据结构》课程教学资源:第九章 查找.ppt
- 《数据结构》课程教学资源:第三章 栈和队列.ppt
- 《数据结构》课程教学资源:第七章 图.ppt
- 《数据结构》课程教学资源:第四章 串 4.3串的模式匹配算法 44串操作应用举例.ppt
- 《数据结构》课程教学资源:期末复习.ppt
- 《MATLAB》课程教材电子教案(PPT课件讲稿)第9章 MATLAB符号计算.ppt
- 《MATLAB》课程教材电子教案(PPT课件讲稿)第8章 MATLAB数值积分与微分.ppt
- 《MATLAB》课程教材电子教案(PPT课件讲稿)第7章 MATLAB解方程与函数极值.ppt
- 《MATLAB》课程教材电子教案(PPT课件讲稿)第6章 MATLAB数据分析与多项式计算.ppt
- 《MATLAB》课程教材电子教案(PPT课件讲稿)第5章 MATLAB绘图.ppt
- 《MATLAB》课程教材电子教案(PPT课件讲稿)第4章 MATLAB文件操作.ppt
- 《MATLAB》课程教材电子教案(PPT课件讲稿)第3章 MATLAB程序设计.ppt
- 人民邮电出版社:高等学校计算机专业教材《80x86汇编语言程序设计》课程电子教案(PPT课件讲稿)第8章 输入/输出与中断.ppt
- 人民邮电出版社:高等学校计算机专业教材《80x86汇编语言程序设计》课程电子教案(PPT课件讲稿)目录.ppt
- 《大学计算机基础教程》课程教学资源(PPT课件)第5章 MCS - 51单片机的中断.ppt
- 《大学计算机基础教程》课程教学资源(PPT课件)第6章 MCS - 51单片机内部定时器/计数器及串行接口.ppt
- 《大学计算机基础教程》课程教学资源(PPT课件)第1章 微型计算机基础.ppt
- 《大学计算机基础教程》课程教学资源(PPT课件)第2章 单片机的硬件结构和原理.ppt
- 《大学计算机基础教程》课程教学资源(PPT课件)第3章 MCS - 51单片机指令系统.ppt
- 《大学计算机基础教程》课程教学资源(PPT课件)第4章 汇编语言程序设计简介.ppt
- 《大学计算机基础教程》课程教学资源(PPT课件)第7章 单片机系统扩展与接口技术.ppt
- 《网络信息对抗》课程教学资源(PPT课件讲稿)第三章 安全性分析与风险评估 3.1 安全漏洞概述 3.2 微软操作系统安全性分析.ppt
- 《网络信息对抗》课程教学资源(PPT课件讲稿)第一章 概述.ppt
- 《网络信息对抗》课程教学资源(PPT课件讲稿)第二章 了解TCP/IP.ppt
- 《网络信息对抗》课程教学资源(PPT课件讲稿)第三章 安全性分析与风险评估(3.2)Windows系列风险分析.ppt
- 《网络信息对抗》课程教学资源(PPT课件讲稿)第三章 安全性分析与风险评估(3.3)UNIX系统的安全分析.ppt
- 《网络信息对抗》课程教学资源(PPT课件讲稿)第三章 安全性分析与风险评估(3.4)风险分析.ppt
- 《网络信息对抗》课程教学资源(PPT课件讲稿)第六章 网络防护(6.1)安全策略与安全网络设计.ppt
- 《网络信息对抗》课程教学资源(PPT课件讲稿)第八章 网络安全基础设施.ppt
- 《网络信息对抗》课程教学资源(PPT课件讲稿)第六章 网络防护 6.6 入侵检测 6.7 snorts系统.ppt
- 《网络信息对抗》课程教学资源(PPT课件讲稿)第六章 网络防护 6.3 防火墙 6.4 VPN 6.5 蜜罐技术.ppt
- 《网络信息对抗》课程教学资源(PPT课件讲稿)第六章 网络防护(6.2)路由器.ppt