好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

微机原理实验-汇编语言程序设计.doc

5页
  • 卖家[上传人]:博****1
  • 文档编号:475230697
  • 上传时间:2024-01-14
  • 文档格式:DOC
  • 文档大小:67.50KB
  • / 5 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 应用数学 学院 信息与计算科学 专业 班__组 学号 姓名 协作者______________ 教师评定_________________实验题目 汇编语言程序设计 一、 实验目的与要求实验目的:掌握汇编语言程序设计的基本方法实验要求:设有九个学生某门课的成绩存放在数据区中试编制一个程序,统计低于60分,60~69分,70~79分,80~89分,90~99分和100分的人数,并输出显示统计结果二、 实验方案要统计各个分数段的人数,首先要在数据段中预先存放学生的成绩,然后判断各学生的分数属于哪一个分数段分数小于60即为不及格,大于等于60则执行下一步;判断是否小于70,若是则属于60~69这个段,否则执行下一步继续判断输入过程有可能出现错误输入一个大于满分100分或者小于0的数,所以还要判断这个数是不是输入错误在数据区中,存放9个学生的成绩,根据程序执行的结果,验证所设计的程序是否正确三、 实验结果和数据处理数据处理:程序代码及代码注释如下:include io32.inc .datascore DWORD 67 ,77 ,98 ,100 ,110 ,89 ,35 ,58 ,88output1 byte '不及格(0-59)的人数是: ',0output2 byte '及格(60-69)的人数是: ',0output3 byte '中等(70-79)的人数是: ',0output4 byte '良好(80-89)的人数是: ',0output5 byte '优秀(90-99)的人数是: ',0 output6 byte '满分(100)的人数是: ',0output7 byte '输入错误数: ',0 count1 byte 0 ;0-59段人数计数器 count2 byte 0 ;60-69段人数计数器count3 byte 0 ;70-79段人数计数器count4 byte 0 ;80-89段人数计数器count5 byte 0 ;90-99段人数计数器count6 byte 0 ;100段人数计数器 count7 byte 0 ;错误分数段人数计数器 .codestart: mov ecx,lengthof score ;数组长度每次循环后ecx减1 mov esi,0again: mov eax,score[esi*(type score)] ;寄存器相对寻址,type score即为DWORD的大小,为4 call dispsid cmp eax,0 jl flags0 ;判断是否小于0?是就转移到flags0 cmp eax,60 ;跟60比较大小 jl flags1 cmp eax,70 jl flags2 cmp eax,80 jl flags3 cmp eax,90 jl flags4 cmp eax,100 jl flags5 je flags6 jg flags7flags0: add count7,1 jmp nextflags1: add count1,1 jmp next flags2: add count2,1 jmp nextflags3: add count3,1 jmp nextflags4: add count4,1 jmp next flags5: add count5,1 jmp next flags6: add count6,1 jmp nextflags7: add count7,1 jmp nextnext: inc esi ;指向下一个数 loop again;循环OUTPUT: call dispcrlf ;回车换行 mov eax,offset output1 call dispmsg ;显示字符串(以0结尾) xor eax,eax ;异或使eax为0 mov al,count1 call dispsid ;显示有符号的十进制整数 call dispcrlf mov eax,offset output2 call dispmsg xor eax,eax mov al,count2 call dispsid call dispcrlf mov eax,offset output3 call dispmsg xor eax,eax mov al,count3 call dispsid call dispcrlf mov eax,offset output4 call dispmsg xor eax,eax mov al,count4 call dispsid call dispcrlf mov eax,offset output5 call dispmsg xor eax,eax mov al,count5 call dispsid call dispcrlf mov eax,offset output6 call dispmsg xor eax,eax mov al,count6 call dispsid call dispcrlf mov eax,offset output7 call dispmsg xor eax,eax mov al,count7 call dispsid exit 0 end start程序运行结果:四、 结论在数据区中,存放9个学生的成绩,根据程序执行的结果,验证所设计的程序是否正确。

      运行得到的结果和预期的相符合,未发现问题可以认为设计的程序是有效与正确的五、 问题与讨论本次微机实验经过认真、刻苦、专心、耐心的编程,其间出现的错误接连不断,但经过不断的改进与实践、查找课本、询问老师及同学,最终成功的完成了本次试验内容也让我进一步了解了汇编语言平时课堂上学习时,一些指令很难记住在脑子里但通过反复实践,耐下心思亲手去编写一段段程序之后,才更清晰理解每个指令与整个汇编语言程序的清晰架构,自己也重点发现了,原来指令名字其实大多数是其功能的英文缩写,这样记忆起来就显得相当易记本次的课程设计是在微机原理的期末考试前完成,这对我们对书本的理解有着极其重要的意义,使得课本新旧知识的复习也没那么困难一言以蔽之,本次试验是一次难得的实验,是一次效果显著的实验,是一次受益匪浅的实验。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.