资源描述:
《汇编随机点名大作业》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、《汇编语言程序设计》综合程序设计实验报告题目:随机点名完成日期:2013.11.23一、项目简介本项目的名称是随机点名,主要用于大学老师上课期间对上课的学生进行随机的点名抽查,优点是方便快捷。二、小组成员具体分工组长:杨波主要负责的工作:获得随机数的代码编写,输出字体带颜色的代码编写,后期代码的修改,系统的整合操作,信息的搜集和整理,实验报告的检验及修改组员:崔海营主要负责的工作:通过所获得的随机数得到输出学号的代码编写,实验报告的初步编写,信息的搜集和整理三、需求分析与设计1.项目设计背景及意义:当今社会上大学已经成为
2、一种潮流趋势,而随着大学生人数的增多,每堂课的人数也随之增多。这就给许多大学老师带来了问题,课程时间一定而考勤却占去了相当一部分时间,同时老师并不能记清所有人的名字或是学号,找学生回答问题成为了老师们的一块心病。种种原因下对课程进度也造成了一定的影响。而我们设计的随机点名项目极具针对性的解决了这个问题。该项目通过随机的显示学生信息进而达到点名的目的,方便快捷,有效的节约了课程时间。2.编译及运行环境:MasmforWindows集成实验环境2012.53.项目的设计过程3.1小组讨论通过具体的项目分析,决定各自分工以及所
3、有可遇到难点的处理办法。本项目需要解决的最大问题就是随机数的获取。在计算机中获得完全的随机数几乎是不可能的,所以随机数的生成实际上是伪随机数的生成。本项目我们采用IBM公司首创的线性同余法,取系统时间为随机种子,进而获得随机数。3.2信息的收集及整合通过上网查找以及对书本上知识的研究,初步得出基本的代码框架,包括首先通过线性乘同余法来获得随机数,然后根据随机数来选择输出的学号,进而达到随机点名的需求。3.3代码的编写通过所学的知识以及所查询的知识进行代码的初步编写。主要参考书目:IBM-PC汇编语言程序设计沈美明温冬婵;
4、汇编语言程序设计教程王庆生3.4实验报告的书写四、代码及分析4.1知识点及特色4.1.1知识点1.字符串,数组,常量的定义以及初始化2各种寄存器寻址方式2.栈的定义及初始化4.子程序的定义及调用5.系统时间的调用及使用6.加减乘除四则运算7.栈的操作,包括压栈和弹栈8.bios功能调用使字符串带颜色显示9.dos功能调用10.字符比较指令及跳转指令的操作4.1.2特色及流程该程序的所有代码是自主编写的,其中随机数的代码是通过对线性乘同余法的分析,调用系统时间实现四则运算而获得。具体有以下子程序:1)main主程序.实现获
5、取当前输出模式并改变当前输出格式和像素的功能.接下来,在选项选择时,若选择1则程序继续输出学号,若选择2则结束输出.2)Random子程序,调用系统时间为随机种子,利用公式In=(a*In-1)modm其中a=37d,m=63553d.然后In和00001111B作与运算,将In数值限制在20以内,最后存于v_random中.3)Search_disp子程序,根据v_random传给num的数值,利用comper子程序,选择与num数值相应的string(num),在跳转后调用display子程序。4)comper子程序
6、.包含和num比较与跳转的具体指令,调用display子程序的前提.5)Display子程序.通过调用BIOS功能在0行0列以彩色输出一串字符,具体见BIOS功能13h.6)Clrfpro子程序.其主要任务就是实现换行.具体流程图如下:(此处流程图给出的是总体流程,关于整个项目涉及到的各种算法流程在子函数介绍中已给出)开始输入选择项al=31hN跳转到OVERY获取随机数=>V_random由随机数取学号=>num输出被选人=>string结束4.2.源代码如下:DATASSEGMENTv_randomdb50dup('
7、$');用于存获取的随机数adw37d;线性乘同余法中的a参数mdw63553d;线性乘同余法中的a参数timedb100dup('$');获得的系统时间messagedb'1.continue2.exit',13,10,'$'Clrfdb13,10,'$';换行STRING1DB'YouarepickedMr.20112784';,13,10,'$';以下都是相应学号信息STRING2DB'YouarepickedMr.20112795';,13,10,'$'STRING3DB'YouarepickedMr.20112
8、796';,13,10,'$'STRING4DB'YouarepickedMr.20112797';,13,10,'$'STRING5DB'YouarepickedMr.20112798';,13,10,'$'STRING6DB'YouarepickedMr.20112806';,13,10,'$'STRING7DB