13281036_刘大力_汇编程序设计实验3_3.docx

13281036_刘大力_汇编程序设计实验3_3.docx

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
13281036_刘大力_汇编程序设计实验3_3

汇编编程作业和实验3-3:建立学生名次表一、实验内容以grade为首地址的10个字的数组中保存了学生的成绩,要求建立10个字的rank数组,并根据grade中的学生成绩将学生名次填入rank数组中。二、设计思想计算学生名次的算法是:学生的名次等于成绩高于该学生的人数加1。设立两层循环。内层循环依据此算法计算出一个学生的名次,用DX(实际为名次减1),送入外层循环。外层循环将每个学生的名次存入rank的相应位置,并循环所有学生。由于在内层循环后外层循环CX的值被破坏,所以在进入内层循环之前需保存CX,退出内层循环之后再恢复CX。我使用了堆栈来保存CX。三、流程图四、源代码DATASSEGMENTGRADE DW 100,96,43,56,87,32,66,84,92,73RANK DW 10 DUP(0)DATAS ENDSSTACKS SEGMENT DW 100 DUP(0)STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKSSTART:MOV AX,DATASMOV DS,AXMOV AX,STACKSMOV SS,AXMOV CX,10MOV BX,0LOP1:MOV AX,GRADE[BX]LEA SI,GRADEMOV DX,0PUSH CXMOV CX,10LOP22:CMP AX,[SI]JAE NEXTINC DXNEXT: ADD SI,2LOOP LOP2POP CXINC DXMOV RANK[BX],DXADD BX,2LOOP LOP1MOV AX,4C00HINT 21HCODES ENDSEND START五、实验结果Debug:查看数据区内容:数据区前10个字存放的是学生分数,接下来的10个字存放学生名次,与分数一一对应。成绩分别为100,96,43,56,87,32,66,84,92,73的10个学生名次依次为1,2,9,8,4,10,7,5,3,6。结果正确思考题:1、内循环和外循环分别用什么指令实现?L1为外循环,L2为内循环MOV CX,10L1:……PUSH CXMOV CX,10L2:……LOOP L2POP CX…...LOOP L12、请问存放分数、名次的起始地址分别是多少?存放分数的起始地址是0770:0000存放名次的起始地址是0770:0015

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档