LEA DX,STRING3
MOV AH,9H
INT 21H
MOV CX,7;累加中间7个数字 XOR AX,AX DEC SI SUM:
;求7个分数的和
DEC SI
ADD AL,BUF[SI] LOOP SUM
CMP AL,46H JAE FULL_MARK JMP N_FULL_MARK
FULL_MARK: ;满分时
MOV AH,2H MOV DL,'1' INT 21H MOV DL,'0' INT 21H MOV DL,'.'
INT 21H MOV DL,'0' INT 21H MOV DL,'0' INT 21H JMP ENDING
N_FULL_MARK: ;非满分时
MOV CX,2
MOV BH,1;小数点只出现1次
DIVISION:
MOV BL,7 DIV BL;除以7 PUSH AX ADD AL,30H MOV DL,AL MOV AH,2 INT 21H CMP BH,0 JE DOT MOV DL,'.' MOV BX,0
DOT: INT 21H POP AX
MOV AL,AH;余数存入AL MOV DL,10
MUL DL;余数乘以10,结果存入AX
LOOP DIVISION
ENDING:
MOV AH,02 MOV BH,0 MOV DX,0C46H INT 10H;设置光标位置 MOV AH,1 INT 21H
CODE ENDS END START
五、 程序调试结果
六、 设计总结
通过课程几天的课程设计,学到了诸多上课学不到的知识,特别是体会到了汇编语言与高级程序语言编程的不同,起初非常不适宜汇编语言的编程,高级程序语言中的基本功能,入多重循环和套嵌,在汇编语言看来缺是相当复杂的,还有数字的输入和输出都要经过ASCII码与二进制的转换,数据的定义少得可怜,这些特性都让起初的我感到寸步难行。但是进过进一步的上机操作和学习,汇编语言开始变得明朗起来。
此次程序设计虽然收获不小,也留有许多遗憾,如程序没有能够对输入得分大于10分的错误操作做出提示,结果的平均分的百分位在某些时候存在误差,有可能是因为程序中数据是以字节形式存储的,字符长度太短导致误差,也有可能是因为求小数的方法导致的。
总的来说这次课程设计虽然遇到了一些比较麻烦的问题,但还算比较顺利,经过一些讨论和修改,一个完整并且能达到要求的程序总算是写好了,过程虽然有点坎坷,可是收获也颇丰,通过这次课设让我对课本基础知识有了一个系统的掌握,而且对课题设计的思路也有了比较清晰的认识,让我对汇编的了解更加深刻。
计算机科学与技术系课程设计评分表
课程名称: 项 目 评 价 设计方案的合理性与创造性 设计与调试结果 设计说明书的质量 答辩陈述与回答问题情况 课程设计周表现情况 综合成绩
教师签名: 日 期:
(注:1.此页附在课程设计报告之后;2.综合成绩按优、良、中、及格和不及格五级评定。)