汇编程序成绩排序的实现
汇编程序成绩排序的实现
【任务】
在数据区,给出了学生人数及汇编语言课程的成绩,请将成绩排序并保存在原数据区。
下面给出部分代码,要求完成排序子程序。
程序中给出的数据段,包括20位同学的成绩,每名同学的数据占1字节。
参考程序段:
assumecs:cseg,ds:dseg,ss:sseg ssegsegmentstack dw100Hdup(?) ssegends dsegsegment db20 db98,61,57,82,89,73,61,58,53,54 db84,78,70,64,84,63,76,84,83,86 dsegends csegsegment start:movax,dseg movds,ax movcl,ds:[0] movch,0;cx中存储要排序数的个数 movbx,1;要排序数的起始偏移地址 callsort movax,4c00h int21h ;子程序名:sort ;功能:对从(DS):(bx)开始的(cx)个字节排序 ;入口参数:(DS):(BX)保存数据的起始地址 ;(cx)中是要排序的数据个数 ;出口参数:无 sortproc ;这儿写子程序 sortendp csegends endstart
【参考解答】
assumecs:cseg,ds:dseg,ss:sseg ssegsegmentstack dw100Hdup(?) ssegends dsegsegment db20 db98,61,57,82,89,73,61,58,53,54 db84,78,70,64,84,63,76,84,83,86 dsegends csegsegment start:movax,dseg movds,ax movcl,ds:[0] movch,0;cx中存储要排序数的个数 movbx,1;要排序数的起始偏移地址 callsort movax,4c00h int21h sortproc pushsi pushax deccx;外层循环次数为数据个数减1 c1:;排序的外层循环 pushcx movsi,bx c2:;排序的内层循环 moval,[si] cmpal,[si+1] jbenoswap movah,[si+1] mov[si+1],al mov[si],ah noswap:incsi loopc2 popcx loopc1 popax popsi ret sortendp csegends endstart
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。