汇编语言第8章.ppt

汇编语言第8章.ppt

ID:48437102

大小:298.50 KB

页数:25页

时间:2020-01-19

汇编语言第8章.ppt_第1页
汇编语言第8章.ppt_第2页
汇编语言第8章.ppt_第3页
汇编语言第8章.ppt_第4页
汇编语言第8章.ppt_第5页
资源描述:

《汇编语言第8章.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第八章高级宏汇编语言8.1结构结构就是将逻辑上有一定关系的一组数据,以某种方式组合在一起所形成的数据形式。将学生的学籍档案以结构的数据形式来表示。每个学生的各种数据,如姓名、学号、年龄和各科成绩等等,组成了一个结构型数据。一、结构的定义结构的定义使用结构伪指令,其格式为:结构名STRUC<数据定义语句序列>结构名ENDS1在一个源程序中结构名必须是唯一的。数据定义语句序列是用DB、DW或DD定义的变量,作为结构中的各字段,所定义的各变量名称为结构字段名。例如:STUDENTSTRUCCLASSDB‘27063010’NUMDB?N

2、AMEDB15DUP(?)SCOREDB?STUDENTENDS注意:使用伪指令STRUC/ENDS定义的结构不产生目标代码,而定义的各个字段也不分配存储单元。2二、结构的预置与存储分配其中:结构名使用STRUC/ENDS定义的结构。结构变量名是结构副本的标识符,与其它变量一样,它也有三个属性:段、偏移量和类型属性。类型属性表示结构的总字节数。结构预置:用定义的结构设置结构变量,分配存储空间。结构变量名结构名<字段值表>结构变量预置语句的格式为:字段值表是为结构变量中各字段的值进行预置初值,必须用一对尖括号括起来。3例如:DATA

3、SEGMENT STU1STUDENT<>;不改变结构定义时的初值定义STU2STUDENT<‘25060020’>;只改变第一个字段的值STU3STUDENT<,10,‘LIMING’,90>;第一个字段不变,其余重置STU4STUDENT10HDUP(<‘27060010’>) ;同时预置10H个副本,每个副本只修改第一个字段初值。DATAENDS三、对结构变量及其字段的操作结构变量的使用与一般变量一样,可以作为一条指令的操作数。TYPE运算符作用结构变量,其返回值为该结构变量的总字节数。MOVAX,TYPESTU1;AX<=

4、25MOVBH,LENGTHSTU2;BH<=1MOVBL,LENGTHSTU4;BL<=10HMOVCX,SIZESTU3;CX<=25MOVDX,SIZESTU4;DX<=16*25例如:4结构变量的字段的使用与一般变量的使用完全相同。MOVSI,OFFSETSTU1.CLASS;SI<=0MOVDI,OFFSETSTU2.CLASS;DI<=25MOVAX,LENGTHSTU1.NAME;AX<=15MOVBX,OFFSETSTU2 MOV[BX].SCORE,80;将STU2的SCORE字段赋值80访问结构变量中的字段要使

5、用结构字段运算符“.”结构变量名.结构字段名其使用格式为:例如:5四、程序举例BLOCKSTRUCFB1DB?FB2DB?FB3DW10HDUP(?)BLOCKENDSDATASEGMENTSTRU_VARBLOCK20DUP(<>)DATAENDS要求在20个结构变量的FB1字段中依次存入字母A、B、C、D.......,在FB2字段中依次存入字母Z、Y、X、W、V、........。主要程序段编制如下:例1现有结构定义和预置如下:MOVDI,OFFSETSTRU_VAR;取结构变量首址MOVAL,'A';取初始化字段内容MOV

6、AH,'Z'MOVCX,LENGTHSTRU_VAR;取结构变量个数LOP:MOV[DI].FB1,AL;依次向字段送字母MOV[DI].FB2,AHINCAL;修改字段内容DECAHADDDI,TYPESTRU_VAR;修改指针LOOPLOP6例2设学生学籍结构为SC1~SC7是7个连续字段,分别记载每个学生的7门课程的成绩;AVERAGE字段是该学生的平均成绩。在数据段预置了30位学生的结构副本。另有程序已完成30位学生的成绩录入。要求编制一子程序计算30位学生7门课程的平均成绩并送入相应的AVERAGE字段中。结构定义和数据

7、段中结构预置如下:STUD_SCORSTRUC::SC1DB0SC2DB0SC3DB0SC4DB0SC5DB0SC6DB0SC7DB0AVERAGEDB0STUD_SCORENDS:CLA_SCORSTUD_SCOR30DUP(<>)7SCOREPROCLEABX,CLA_SCOR;取第一个结构副本首址送BXMOVCX,30;计算平均成绩的总人数LOP1:XORAX,AXPUSHCXLEASI,[BX].SC1;SI<=一位学生SC1字段偏移量MOVCX,07HLOP2:ADDAL,[SI];计算一位学生的总成绩ADCAH,0;由

8、于[SI]是字节单元,不直接使用AXINCSILOOPLOP2MOVCL,07HDIVCL;计算平均成绩MOV[BX].AVERAGE,AL;存放平均成绩ADDBX,TYPECLA_SCOR;指向下一个结构副本POPCXLOOPLOP1RETSCO

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

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

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