华中科技大学汇编语言程序设计实验报告(八)Win32编程.doc
文本预览下载声明
课程实验报告
课程名称:汇编语言程序设计实验实验名称:实验五
课程名称:
汇编语言程序设计实验
实验名称:
实验五 Win32编程
实验时间:2017-5-3, 14: 30-17: 30实验地点: 南一楼804室45号实验台
指导教师: 李专
专业班级:计算机科学与技术
专业班级:
计算机科学与技术201502班
学 号: U201414596 姓 名: 卢振兴
同组学生: 报告日期: 2017年5月3日
原创性声明
本人郑重声明:本报告的内容由本人独立完成,有关观点、方法、数据和文献等的 引用己经在文中指出。除文中已经注明引用的内容外,本报告不包含任何其他个人或集体己 经公开发表的作品或成果,不存在剽窃、抄袭行为。
特此声明!
学生签名:卢振兴
H 期:2017.5.3
成绩评定
实验完成质最得分(70 分)(实验步骤清晰详细深 入,实验记录真实完整等)
报告撰写质量得分(30 分)(报告规范、完整、通 顺、详实等)
总成绩(100分)
指导教师签字:
H期:
1?实验目的与要求
熟悉WIN32程序的设计和调试方法;
熟悉宏汇编语言屮INVOKE>结构变量、简化段定义等功能;
进一步理解机器语言、汇编语言、高级语言之间以及实方式、保护方式之间的一?些关系。
2.实验内容
编写一个基于窗口的WIN32程序,实现学生成绩表信息的平均值计算及显示功能(借 鉴前面实验中的一些做法),具体要求如下描述。
功能一:编写一个基于窗口的WIN32程序的菜单框架,具有以下的下拉菜单项:
File Action Help
Exit Average About
List
点菜单File下的Exit选项吋结束程序;点菜单Help下的选项About,弹出一个消息框, 显示本人信息,类似图5.1所示。点菜单Action K的选项Average. List将分别实现计算平 均值或显示所有成绩的功能(详见功能二的描述)。
图5.1菜单示例
功能二:每个学生的相关信息包括:姓名(结尾含1个以上的数值0,共占10个字节),
语文成绩(1个字节),数学成绩(1个字节),英语成绩(一个字节),平均成绩(1个字节), 等级(1个字节)。要求采用结构变量存放学生的相关信息。学生人数至少5人。姓名和各 科成绩直接在数据段中给定,不必运行时输入。成绩表中最后一个学生必须使用自己的姓名。
点菜单项Average时,计算平均成绩并给出等级(等级的定义见实验一,但这里不用单 独显示等级)。平均成绩的计算仍按照实验一的公式进行。平均成绩和等级保存到上述结构 变量的相应字段中。用TD32观察计算结果。
点菜单项List时,耍求能在窗口中列出所有学生信息,包括姓名、各科成绩、平均成 绩、等级等。如图5.2所示。平均成绩尚未计算时,平均成绩及等级显示为空白。
Our First Window I o ||g回 I
file Action 上felp
List
Name
Chinese
Maths
English
Average
Grade
xueba
80
86
87
82
B
xuezha
46
55
58
50
F
zhangsan
70
86
87
77
C
lisigsan
67
76
61
68
D
wangwuan
11
56
69
69
D
chenliun
99
100
99
99
A
图5. 2成绩单显示示意图
上述任务中,思考或尝试的问题的提示:
安装MASM32软件包,观察MASM32软件包目录结构和环境配置。
试对\masm32\EXAMPLE 1 \3DFRAMES\下的例了,进行汇编、连接、运行和调试 (TD32.EXE观察WIN32执行程序代码的特点和执行流程。体会基于窗口的应用程序所
包含的四个部分Z间的衔接关系。
观察TD32与16位TD的界同。
调试WIN32程序与16位段程序的主要差界是什么?
尝试使川一下汇编语言程序的源码级调试工具和方法,与非源码级调试做个对比, 可以参考文献3。
用TD32观察代码区或数据区时,若所观察的地址范围不是与被调试程序相关的区 间,则对应内存中的数据会因为被系统保护了而读不出来(将用?代替),请通过修改偏移 地址来改变观察的区间,记录此现彖。
编写和处理简单资源脚木,装入菜单,观察效果。
观察收到的消息,记录每个菜单项或按键等操作所对应的消息信息。
比较DOS、Windows输出方式,观察Win32程序的儿种字符串输出方式所用函数的 原型。
观察结构变量的平均成绩等字段的偏移,体会结构变量优点。
观察简化段的效果。
观察Invoke语句翻译成机器码后的特点,记录参数压栈顺序。
本次实验需要突!1! WIN32的框架、调试方法、少16位段程序的区別等几个内容。
参考资料:
许向阳,《80X86汇编语言程序设计
显示全部