计算机硬件技术基础实验报告-综合程序设计.doc
东北大学计算机硬件技术基础实验报告一、实验目的1加深对顺序、分支、循环结构的理解。2掌握顺序、分支、循环程序的设计,调试方法。3熟练掌握DEBUG的常用命令,学会用DEBUG调试程序。二、实验内容有一个班级,学生人数存储于内存NUB单元,该班同学某门课程的成绩存放于内存S开始的单元,编制程序,统计该班该课程的平均成绩,存放于E单元。三、算法描述流程图专业班级姓名学号实验题目综合程序设计日期开始设置数据段地址CXCX1取S首地址于BX修改S地址BXBX2设置循环初值CXNUB成绩依次累加放于AXCX0YN四、实验步骤1输入源程序DATASEGMENTSDW65,87,0,59,68,98,100定义成绩数据块NUBDB7定义人数EDB0定义平均成绩整数单元EFDB0定义平均成绩余数单元FDATAENDSCODESEGMENTASSUMECSCODE,DSDATASTARTMOVAX,DATAMOVDS,AX置数据段寄存器LEABX,S取S数据块首地址XORAX,AXAX寄存器清零XORCH,CHCH寄存器清零MOVCL,NUB设置LOOP循环次数L0ADDAX,BX对每个数依次累加,并送AXADDBX,2LOOPL0DIVNUB将累加和除以人数得平均成绩,仍在AXMOVE,AL将平均成绩的商放在E单元MOVF,AH将平均成绩的余数放在F单元MOVAH,4CH程序结束退出INT21HCODEENDS结束计算平均成绩AXAX/NUB将商放在EAL,余数放在FAHENDSTART2保存源文件,生成OBJ目标文件,结果无错误。3执行程序,得到执行结果。4执行AUSMEMORY得到如下界面,得到LENG的结果0CH五、实验结果1源程序得到如下界面2执行程序,得到执行结果,得到如下界面3执行AUSMEMORY得到如下界面,得到RLT的结果E44HF01H六、思考题测试最低位状态也可以用右移指令,然后判断CF的状态。请问如何修改程序语句答将TESTAL,01和JZEVENS改为SHRAL,1和JNCEVENS。然后将AGAIN段和EVENS段改为AGAINMOVAL,SISHRAL,1JNCEVENSADDBL,SIADCBH,0JMPCHCNTEVENSADDDL,SIADCDH,0七、实验心得1、若想实现平均成绩的统计,只需对每个成绩依次累加,然后除以人数得到平均成绩。2、实验时应注意每次循环后应对S进行移位操作。3、最终通过结果本可以从AX直接赋给十六位E单元,但使用DIV指令求平均成绩时,会将商放在AL,而将余数放在AH中,致使E的低八位显示商,高八位显示余数,影响直观性。所以本实验选择将商放于八位E单元,余数放于八位F单元,使实验结果更加直观。通过本实验理解了汇编语言中编程的基本步骤,掌握汇编语言编制基本顺序、分支、循环结构的算法。这个实验,使我可以在改错中不断成长,我要继续练习熟读汇编语言代码的能力。