猜数字(1)

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

汇编语言实训任务书

题目:猜数字游戏班级:

学生姓名:学号:

学生姓名:学号:

题目类型:软件工程(R)指导教师:刘树群

一、设计目的

1.进一步掌握和利用汇编语言进行程序设计的能力;

2.初步掌握开发一个小型实用系统的基本方法;

3.学会调试1111一个较长程序的基本方法;

4.学会利用流程图表示算法;

5.掌握书写实训开发文档的能力(书写实训报告)。

二、设计任务及内容

编程实现以下功能

1.功能菜单由“开始游戏”、“重新开始游戏”、“退出游戏”等组成。

2.程序运行后,系统自动产生一个1-100之间的随机整数。游戏开始后,程序根据游戏者输入的数字与所需猜测数字进行比较,并给出响应,游戏者根据程序响应再猜数字,最后得到正确数字。

3.程序应有操作提示、输入和输出,界面追求友好,最好是菜单式的界面。

4.设计若干用例(测试数据),上机测试程序并分析(评价)所设计的程序。

三、设计要求

1.用汇编语言实现系统。

2.利用寻址,调用等实现基本设计。

3.系统具有操作提示、输入和输出等菜单界面。

4.设计报告格式按附件要求书写。

5.文档:实训说明书每个学生一份,并装在统一的资料盒中。

6.光盘:每个学生文档和程序资分别建在一个以自己学号和姓名命名的文件夹下,并要求每班负责人汇总每个学生的文件放在以班级姓名命名的文件夹下,刻录成一张光盘,放在一个专门的资料袋中。

四、提交的成果

1.设计任务书一份

2.设计说明书一份,内容包括:

1)需求说明(要求、功能简述)或问题描述;

2)设计说明(简要的分析与概要设计);

3)详细的算法描述;

4)源程序与执行结果(含测试方法和测试结果);

5)实用说明;

6)总结,包括设计心得(设计的特点、不足、收获与体会)和展望(该程序进一步改进扩展的设想)。

3.刻制光盘一张。

五、主要参考文献

[1]李敬兆等编.《汇编语言程序设计》中国科学技术大学出版社

[2]李敬兆等编.《汇编语言程序设计实验教程及习题解答》中国科学技术大学出版社

[3]王爽等编.《汇编语言》清华大学出版社

[4]曹加恒等编.《新一代汇编语言课程设计》高等教育出版社

[5]杨路明等编.《汇编语言程序设计》中南大学出版社

[6]詹仕华等编.《汇编语言程序设计》中国电力出版社

[7]詹仕华等编.《汇编语言程序设计习题解答及课程设计、设计辅导》中国电力出版社

[8]宋彩莉等编.《汇编语言程序设计学习指导》西安交通大学出版社

六、各阶段时间安排(共1周)

2016年6月26日

摘要

随着计算机技术的普及向其他学科的快速渗透浅显的计算机技术已经普遍不能适应当今的形势,这在就业以及进入新的工作方面,就更加突出。汇编语言是一种面向CPU指令系统的程序语言,它采用指令系统的助记符来表示操作码和操作数,用符号地址表示操作数地址。

本程序《猜数字游戏》主要由汇编语言相关知识编写而成。

关键词:汇编语言;猜数字;指令系统;游戏

1.概述

1.1系统需求分析

设计一个猜数字的游戏,程序运行后自动产生一个1~100之间的随机整数。游戏开始后,程序根据游戏者输入的数字与所需猜测数字进行比较并给出响应,游戏者根据程序给出的响应再次猜数字,最后得到正确数字。程序应有相应的操作、输入和输出提示。

1.2功能简介

本程序作为一个猜字游戏软件,以QASM作为软件开发环境,利用随机函数通过数字比较,编程实现了一个在DOS下运行的猜数字游戏软件。首先通过指令在程序中产生随机数,由键盘输入的数字与其比较,如果大于随机数,则提示输入的数太大,请重新输入;如果小于随机数,则提示输入的数太小,请重新输入;如果等于随机数,则提示正确;如果输入的数不是十进制数,则直接退出。2.系统总体分析

首先通过指令在程序中产生随机数,由键盘输入的数字与其比较,如果大于随机数,则提示输入的数太大,请重新输入;如果小于随机数,则提示输入的数太小,请重新输入;如果等于随机数,则提示正确;如果输入的数不是十进制数,则直接退出。根据需求分析的结果,本系统至少有以下模块:产生随机数模块、输入模块、比较模块、提示模块。

2.1系统总体设计

该课程设计的特点在于程序运行后产生随机数的过程比较巧妙。它是调用了BIOS功能调用的1AH号中断,读取系统时钟。然后进行除法运算得到余数,再进行加法运算得到符合要求的随机数。此课程设计的另外一个特点是定义了多个子程序,将各功能模块化,便于在调试过程中查找错误和修改,不会影响其他模块。

各模块功能说明如下:

1)产生随机数模块的主要功能是程序运行后自动产生一个1~100之间的随机整数。

2)输入模块的主要功能是实现从键盘输入用户所猜测的数据。

3)比较模块的主要功能是用输入的数据与随机数比较。

4)提示模块的主要功能是经过比较后提示用户输入数据与随机数的差距。

2.2程序设计流程图

n

Y Y

Y

Y

大于

小于

等于

3.详细设计

3.1随机数的产生

通过查找各种资料知,随机数的产生也是一种算法,通过种子数据,计算出不同的随机数。但,此次试验,我通过对系统当前时间的提取来表示随机数,即用时间中的“秒”来作这个随机数。

指令为:

mov ah,2ch 取系统时间,CH:CL=时间:分钟;DH=秒

int 21h

3.2 从键盘输入数据

如果仅用指令:

mov ah,01h I

nt 21h

来从键盘读取数据,则只能取一个字符,即,只能读取一位数字;在试验中通过反复调试,可以对每次输入的数(存放于al中)与“回车”的ASCII比较,如果不是“回车”,则返回继续输入;如果是回车,则跳出,完成数据的输入。每一次返回继续输入时,原来的al中的数据要以个位加入到bx中,即,bx=bx*10+al;这样可以保证输入的数据不会丢失。

3.3 数据的比较

用输入的数据(存放于bx中)与随机数(存放于a中:mov a,dx)比较;如果大于,则输出提示数据太大,请重新输入,并跳转到键盘输入数据指令;如果小于,则输出提示数据太小,请重新输入,并跳转到键盘输入数据指令;如果等于,则提示正确,并结束。其中,小于跳转用jb;大于跳转用ja;等于用jz。cmp bx,a ;输入值与随机数比较

jb smaller ;小于

cmp bx,a ;大于

ja larger

cmp bx,a ;等于

jz ok

相关文档
最新文档