汇编语言程序设计08结构和宏以及课程总结.ppt
《汇编语言程序设计08结构和宏以及课程总结.ppt》由会员分享,可在线阅读,更多相关《汇编语言程序设计08结构和宏以及课程总结.ppt(24页珍藏版)》请在三一办公上搜索。
1、汇编语言程序设计,_08_结构和宏以及课程总结大连理工大学软件学院_朱明2009年5月31日_ V1.1,Section 1,结构,结构Structure是逻辑上相互关联的一组变量的模板,结构中的单个变量称为域 结构将一类数据进行了归集,进程间传递参数方便 将相关的数据存放在一个结构中 向过程传递该结构的地址 结构可以减少堆栈空间的使用 结构的使用过程 定义结构 声明一个或多个该结构的变量(结构变量)运行时访问结构或结构中的域 定义结构时要特别注意对齐的问题,汇编语言程序设计-朱明,2,结构,结构的定义 域的初始化与普通变量和数组的初始化基本相同,汇编语言程序设计-朱明,3,结构名STRUCT
2、域的声明结构名ENDS,COORD STRUCT X WORD?Y WORD?COORD ENDS,EmployeeSTRUCTIDNumBYTE“000000000”LastNameBYTE 30 DUP(0)YearsWORD 0SalHistoryDWORD 0,0,0,0EmployeeENDS,“000000000”IDName,(null)LastName,0years,0 0 0 0SalHistory,Section 1,结构,结构变量的声明 结构变量的声明的基本格式 通过尖括号实现对结构变量的声明,尖括号中的内容表示从左向右顺序定义的结构变量对应位置的域的值,左边不需要重性赋
3、值的域可以直接通过逗号忽略,汇编语言程序设计-朱明,4,COORD STRUCT X WORD?Y WORD?COORD ENDS,Point1COORD Point2 COORD Point3COORD Point4COORD,结构体变量名结构体名,Person1 EmployeePerson2 Employee,Section 1,结构,结构的尺寸与尺寸操作符,汇编语言程序设计-朱明,5,EmployeeSTRUCTIDNumBYTE“000000000”;+9BLastNameBYTE 30 DUP(0);+30ALIGNWORD;+1BYearsWORD 0;+2ALIGNDWORD;
4、+2BSalHistoryDWORD 0,0,0,0;+16EmployeeENDS;=60,Section 1,WorkerEmployee,TYPEEmployee;60,SIZEOFEmployee;60,SIZEOFWorker;60,TYPE取标识符的存储类型,SIZEOF取标识符的存储尺寸,结构,结构中域的尺寸与访问 使用结构或者结构变量名作为修饰访问域 间接寻址和变址寻址访问结构 MASM规定间接寻址访问结构时必须使用PTR操作符 workeresi.Year访问的是哪里?,汇编语言程序设计-朱明,6,TYPEEmployee.SalHistory;4,movdx,Worker.
5、Yearsmovworker.SalHistory,20000;第一个值movwork.SalHistory+4,3000;第二个值,workerEmployee5 DUP()movesi,OFFSET workermovax,(Employee PTR esi).Yearmovesi,TYPE Employeemovworkeresi.Year,4,Section 1,结构的练习,系统的时间问题 Windows系统会给我们什么样的时间 年、月、日、小时、分钟、秒、星期、毫秒 GetLocalTime过程,并传递对应结构变量的地址,汇编语言程序设计-朱明,7,LOCALGetLocalTime
6、,ADDR sysTime,SYSTEMTIMESTRUCTwYearWORD?wMonthWORD?wDayOfWeekWORD?wDayWORD?wHourWORD?wMinuteWORD?wSecondWORD?wMilliSecondsWORD?SYSTEMTIMEENDS,Section 1,结构的嵌套,结构中可以包含其他结构实例,汇编语言程序设计-朱明,8,COORD STRUCT X WORD?Y WORD?COORD ENDS,Rectangle STRUCT UpperLeft COORD LowerRightCOORD Rectangle ENDS,rect1Rectang
7、lerect2Rectangle,movrect1.LowerRight.X,15,Section 1,movesi,OFFSET rect1mov(Rectangle PTR esi).UpperLeft.Y,25,movesi,OFFSET rect1mov(Rectangle PTR esi).UpperLeft.Y,25,联合,结构与联合 结构的每一个域都有一个相对于结构的首地址的偏移,结构的大小等于所有域的大小的和 联合中所有的于都从同一个偏移地址开始,联合的大小是联合中最大的元素的长度,汇编语言程序设计-朱明,9,Section 2,域1,域2,域3,域4,域1,域2,域3,域4,
8、联合名STRUCT域的声明联合名ENDS,Integer UNION D DWORD 0 W WORD 0 B BYTE 0Integer ENDS,联合,联合变量的声明与初始化与结构变量大致相同 联合只允许一个初始值的初始化 联合与结构联合使用时,应注意各自的特性 联合中可以包含结构,结构中也可以包含联合,汇编语言程序设计-朱明,10,Section 2,Integer UNION D DWORD 0 W WORD 0 B BYTE 0Integer ENDS,Val1IntegerVal2IntegerVal3Integer,movval3.B,almovval3.W,axmovval3.
9、D,eax,课堂练习,创建一个包含有两个域的结构MyStruct:field1域是一个字,field2是20个双字的数组,不初始化值 声明一个MyStruct结构变量,使用默认值 声明一个MyStruct结构变量,第二个域的值全部为0 声明一个包含了20个MyStruct对象的数组 使用下面的Triangle结构声明一个结构变量并将其初始化为(0,0),(5,0)和(7,6),汇编语言程序设计-朱明,11,Section 2,Triangle STRUCT Vertex1 COORD Vertex2 COORD Vertex3 COORD Triangle ENDS,宏,宏(Macro Pro
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 程序设计 08 结构 以及 课程 总结
链接地址:https://www.31ppt.com/p-6186523.html