汇编语言课程设计报告

  • 格式:docx
  • 大小:40.52 KB
  • 文档页数:10

下载文档原格式

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

汇编语言课程实习报告实习题目计算比赛成绩

学生姓名蔡洁敏

班级(学号)计科1123班20KK11621301

院系信息学院计算机系

指导老师叶晓霞

提交时间20KK年5月28日 ___________

成绩 ___________________________________________

目录

1 课程实习任务 (2)

2基本知识 (2)

2.1汇编语言程序结构 (3)

2.2关键指令分析 (4)

2.3汇编语言上机过程 (4)

3总体分析 (5)

3.1 程序功能分析 (5)

3.2设计思路 (5)

3.3 程序框图 (6)

4代码实现 (7)

5调试过程及操作说明 (11)

6总结 (12)

7参考文献 (12)

1课程实习任务

计算比赛成绩系统

基本功能:

(1)有9名评委,每个评委给分范围为 0〜10 (整数):由键盘输入;

(2)9名评委给分中,去掉一个最高分和一个最低分,剩余 7名评委的平均分即为参赛者的得分(精确到小数点后二位,不考虑四舍五入);(3)将最后得分在光标位置处显示出来。

2基本知识

2.1汇编语言程序结构

汇编语言是计算机能够提供给用户使用的最快而又最有效的语言,也是能够利用计算机所有硬件特性并能控制硬件的唯一语言。也因此汇编语言的程序

结构也是多种多样的,我们熟知的结构有循环、分支程序、子程序和宏汇编。而循环程序又有简单循环和多重循环,最重要的是我们要控制好循环的次数;分支程序则是由设定条件不同而跳转到不用的分支,来实现不同的功能;子程序则是

我们为了把整个程序模块化,使得读程序的人容易理解你的程序功能;宏则是一种另类的子程序,是有些程序为了能在时间上达到严格的要求和一些功能代码简短的多参数传递的程序为了方便参数传递而使用的,而牺牲一点点空间来实现,当然宏和子程序的工作机制也是不同的。

2.2关键指令分析

2.2.1数据传送指令

mov指令:mov指令可以在CPU内或CPU和存储器之间传送字或者字节。

PUSH和POP指令:这两条分别是堆栈的进栈和出栈指令。

XCHG指令:它可以在寄存器之间或者在寄存器和储存器之间交换信息。

2.2.2地址传送指令

LEA指令:将源操作数的有效地址送到指定的寄存器中。不能使用段寄存器,源操作数可以使用除立即数和寄存器外的任一种寄存器寻址方式。

2.2.3 类型转换指令

CBW指令:将AL的内容符号扩展到AH,形成AX中的字

224算数指令

ADD指令:进行加法操作INC指令:自加1 SUB指令:进行减法操作DEC 指

令:自减1

CMP指令:将两个操作数进行减法操作,但不保存结果,只设置条件标志

位MUL指令:进行无符号乘法操作 DIV指令:进行无符号除法操作2.2.5 逻辑指令

AND指令:进行逻辑与操作,见 0得0 OR指令:进行逻辑或操作,见1

得1

XOR指令:进行异或操作,相同得 0,不同得1 2.2.6控制转移指令

JMP指令:无条件跳转到指定位置

条件转移指令:根据上一条指令所设置的条件码来判别测试条件,每一种转移指令有它的测试条件,满足测试条件则转移到指令指定的位置 LOOP指令:当测试条件码CX不为0时,循环指定程序段

CALL指令:把子程序的返回地址存入栈中,以便子程序返回主程序时调用 RET 指令:转移到子程序的入口地址去继续执行

2.3汇编语言上机过程

上机过程是我们编写好程序后验证的最好手段,也是我们对我们写得程序进行调试必不可少的一个过程。上机过程我们首先要把我们编写的程序在编译器里对它进行编译看看是否有语法上的错误,然后编译生成 .obj文件,最后连接生成可执行文件.exe,然后我们要对生成的可执行文件进行调试,看看是否有逻辑上的错误,如果有逻辑上的错误那么我们还要对程序进行修改,知道没有逻辑上的错误时,我们就可以运行程序,并得到我们想要的结果了。上机过程大概课分为四部分:编辑、编译、调试、运行。

只有通过上机过程你才能发现你的程序是否有逻辑上或者语法上的错误,最重要的是检测运行结果是不是你理论上的结果。我们只有在上机过程中才能

发现问题,然后解决问题,最终得到我们想要的结果。

3•总体分析

3.1程序功能分析

通过读取依次从键盘输入的9个两位的十进制数得分,将得分保存在字符 串中,然后用冒泡法将9个数的位置按大小重新排列并输出,再将中间的7个数 累加起来除以7,即得到去掉最高分和最低分之后的平均分,最后设置光标位置 到平均分处。

3.2设计思路

通过记录键盘,将ASCII 码转化为二进制数寸入长度为 9的字符串中,此部 分使用用循环结构。若输入的两位数的首位,即十位,非 0或非1,则提示错误 并要求重复输入,若输入的个位数非 0~9中的数,则提示错误并要求重复输入。

用冒泡法重排9个数,使得第1和第9个数分别为最大数和最小数,并在屏 幕中依次显示出来。然后用循环语句求出9个数中中间的7个数的和,即总得分, 若总得分为70分,则直接输出平均分:10.00分。若小于70分则将总得分除以

得到的商作为平均分的个位数,输出一个小数点,将余数乘以 10再除以7, 如此循环3次,后两次不输出小数点,得到精确到小数点后两位的平均的分数, 再将平均分输出。最后改变光标位置为平均得分处。

3.3程序设计框图

开始 输入

9 个分数

『改变光标位置 结束

4.代码实现

【MeiWei 81-优质适用文档】 DATAS SEGMENT

平均分 =总分 /7

平均分 =10.00

按大小重排分数

输出平均分