汇编语言与接口技术 第2版 教学课件 作者 叶继华 第6章 高级汇编语言程序设计.ppt

汇编语言与接口技术 第2版 教学课件 作者 叶继华 第6章 高级汇编语言程序设计.ppt

ID:50482661

大小:650.00 KB

页数:91页

时间:2020-03-09

汇编语言与接口技术 第2版 教学课件 作者 叶继华 第6章 高级汇编语言程序设计.ppt_第1页
汇编语言与接口技术 第2版 教学课件 作者 叶继华 第6章 高级汇编语言程序设计.ppt_第2页
汇编语言与接口技术 第2版 教学课件 作者 叶继华 第6章 高级汇编语言程序设计.ppt_第3页
汇编语言与接口技术 第2版 教学课件 作者 叶继华 第6章 高级汇编语言程序设计.ppt_第4页
汇编语言与接口技术 第2版 教学课件 作者 叶继华 第6章 高级汇编语言程序设计.ppt_第5页
资源描述:

《汇编语言与接口技术 第2版 教学课件 作者 叶继华 第6章 高级汇编语言程序设计.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第6章高级汇编语言程序设计6.1高级汇编语言技术6.2MASM汇编语言与高级语言的连接6.380X86的寻址方式和扩充的指令6.480X86汇编语言编程开始6.1高级汇编语言技术6.1.1结构和联合6.1.2记录6.1.3宏6.1.4重复汇编6.1.5条件汇编返回本章首页6.1.1结构和联合结构伪指令STRUC是MASM支持的一种操作,它把各种不同类型的数据放在同一个数据结构里,得到一种称为结构的数据类型,以便某些处理的需要。联合和结构基本相同,只是联合中的数据区间可以在内存重叠。1.结构和联合的定义格式:结构名

2、联合名STRUC

3、U

4、NION[字段名]数据定义语句:结构名

5、联合名ENDS其中,结构名的命名规则与变量名命名规则相同;数据定义语句是指DB、DW、DD等伪指令语句的序列,其定义的变量名在结构中称为字段名,表示所定义字段的首地址。功能:定义一个结构,把逻辑上互相关联而类型不同的一组数据以某种形式组织在一起,以便进行数据处理。说明:①字段名可选,但至少要有一个字段;②通过数据定义语句,可以定义不同类型的数据;③定义结构时可以给各个字段赋初值,也可以不赋初值,已赋初值的还可以在结构变量定义时被修改。例如:STUDSTRUCC1DB‘ABCDE’C2DW?C3D

6、W85C4DB10DUP(?)STUDENDS2.结构和联合变量的定义结构和联合定义只是定义了一种结构模式,汇编程序并未给它分配存储单元,还不能把有关信息存入存储器,只有定义了结构和联合变量,才能分配存储空间。格式:变量名结构名

7、联合名<字段值表>功能:定义一个结构变量,并可以通过字段值表为结构变量赋初值。说明:①结构名是STRUC伪指令已经定义了的,结构变量名表示分配给该结构的存储空间的起始地址,通过字段值表可以对结构中的各字段分配存储空间及初值,结构变量名可以在程序中直接引用。②联合中的任何一个变量名,其首地址是相同的。③字段值表

8、用于为结构变量赋初值或修改初值。④结构定义之后,可以用结构名定义多个结构变量,也可以使用DUP伪指令同时定义一组结构变量,也即定义了一个结构类型的数组。例如:N1STUD<,10>N2STUD<,20,>N3STUD100dup(<>)N4STUD<‘GOOD’,90,90>N5STUD<,30,40,50>其中,N1~N4这几种形式是允许的,N5这种形式是不允许的,因为结构定义时字段C4有多个值,不允许修改。3.结构变量的使用结构变量的使用分两种,一是直接引用结构变量名来使用整个结构类型数据;二是通过引用结构变量名及其字段名来使用结

9、构类型数据中的字段,形式为:结构变量名.字段名。例如:MOVAL,N1.C1;引用结构变量N1中的C1字段的数值结构的定义、结构变量的定义在数据段中进行,结构变量的引用在代码段中进行。【例6.1】计算若干学生某二门课程的总成绩。源程序如下:DATASEGMENTSTUDSTRUC;定义结构,包含三个字段C1DB?C2DB?SUMDB?STUDENDSN1STUD<85,90>;定义四个结构变量,并赋初值N2STUD<77,65>N3STUD<68,73>N4STUD<69,97>DATAENDSSTACKSEGMENTSTACKDB1

10、00DUP(?)STACKENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVAL,N1.C1;取第一个学生第一门课成绩ADDAL,N1.C2;与第一个学生第二门课成绩相加MOVN1.SUM,AL;保存第一个学生总成绩MOVAL,N2.C1;取第二个学生第一门课成绩ADDAL,N2.C2;与第二个学生第二门课成绩相加MOVN2.SUM,AL;保存第二个学生总成绩MOVAL,N3.C1;取第三个学生第一门课成绩ADDAL,N3.C2;与第三个学生

11、第二门课成绩相加MOVN3.SUM,AL;保存第三个学生总成绩MOVAL,N4.C1;取第四个学生第一门课成绩ADDAL,N4.C2;与第四个学生第二门课成绩相加MOVN4.SUM,AL;保存第四个学生总成绩MOVAH,4CHINT21HCODEENDSENDSTART6.1.2记录说明:①字段至少要有一个;②使用表达式对字段赋初值时,应取正整数,并且不能超过给定位数所能表示的范围,若未赋初值,则默认为0。③记录中各字段的宽度之和不能超过32位(对于8086/8088,则不能超过16位),如果不是正好为8位、16位或32位,则向右看齐

12、,在高端用0填充。1.记录的定义格式:记录名RECORD字段名:宽度[=表达式][,…]功能:定义一个记录,并设置记录的字段。例如,定义一个人的个人情况,包括年龄YEAR、性别SEX(男=1,女=0)、婚否MARR(已婚

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。