欢迎来到天天文库
浏览记录
ID:42637083
大小:486.01 KB
页数:13页
时间:2019-09-18
《计算机组成技术 大作业 第4题(选作)程序说明》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、第4题程序说明题目键盘输入十名以上学生成绩并加以排序,结果按降幂输出。程序简单说明程序核心是,排序找出一组数中的min、max,然后再在更小的数组中的min、max,重复进行,其中一个数比暂存器min小就不会比max大。输入解析注意一些细节。所有交换,连同姓名索引一起交换。代码流程图中同一行中的代码,是可以并行的、不分先后顺序的。程序执行结果程序流程图主程序:Datasource存学生分数,Datasource(1)为第一个有效位置,NameIndex存学生名字索引,NameIndex(1)为第一个有效位置,Datasource(0)、NameIndex(0)存学生人数,s
2、tudentname存学生名字开始提示输入dx←缓冲区(buf)首地址输入数据于缓冲区(buf)中是判断[buf+2]是否是0dh否callAnalysisInput(输入处理)callProperOrder(排序)输出提示calldbxout(输出)结束AnalysisInput子程序(解析输入)流程图。返回时bx存着studentname结尾后一个相对位置。开始di=Datasource+1;si←[buf+2]地址Datasource←di;NameIndex←di;NameIndex(di)←bx是判断[si]是否为回车否是判断[si]是否为空格studentnam
3、e[bx]=’$’;bx++;si++;ax=0;cx=10否studentname[bx]=[si];bx++;si++提示错误;studentname[bx]←’$’bx++;ax=0是判断[si]是否为回车ax=axⅹcx否判断[si]是否为’.’是否ax=axⅹcx;si++ax=axⅹcx;ax=ax+[si]-30h;si++是判断[si]是否为回车否ax=ax+[si]-30h;Datasource(di)←ax返回ProperOrder子程序(排序)流程图。返回时为排好序的Datasource数组,同时对NameIndex进行调整。Datasource(0)
4、中的存放着学生人数开始bx=2;di=Datasource(0);shldi,1;di小于等于比较di与bxdi大bp=bx;cx=disi=bx;ax=Datasource[bx];bp=NameIndex[bx];dx=Datasource[di];cx=NameIndex[di];错误提示dx小比较dx与axdx大于等于ax←→dx;bp←→cxsi=si+2ax小于等于比较Datasource[si]与axax←→Datasource[si];bp←→NameIndex[si]ax大比较Datasource[si]与dxdx小于等于dx大dx←→Datasource
5、[si];cx←→NameIndex[si]si小比较si与disi大于等于Datasource[bx]=dx;NameIndex[bx]=cx;Datasource[di]=ax;NameIndex[di]=bp;bx=bx+2;di=di-2;di小比较di与bxdi大于等于结束dbxout子程序(输出)流程图。Datasource(0)中放着学生人数。此子程序通用性上没有多少价值。开始cx=Datasource;si=2bx=NameIndex[si];dx←studentname地址;dx=dx+bx;输出dx地址中字符串;输出’:’;ax=Datasource[s
6、i];dx=0;bx=10;ax除bx;bx←TemporaryAscii地址callSBinaryAscii是判断dl是否为0否dl=dl+30h;[bx]='.';bx++;[bx],dl;bx++[bx]='$';dx←TemporaryAscii地址;输出dx所存地址指向字符串;换行;si=si+2cx--否判断zf是否为0是返回SBinaryAscii子程序(16位无符号二进制数转化为ascii码)流程图。与第三题同名函数相同;ax为目标操作数,bx为结果存放位置,结束时bx为结果存放位置的下一个有效位置。第一个循环:除10取余,第二个循环:去掉数字中可能有的0。
7、cx--否开始di=4;dx=10h小比较ax与10大于等于dx=0;除si(10);dl=dl+30h[bx+di]=dl;di--al=al+30h;[bx+di]=al;cx=5;cx=cx-di;si=0al=[bx+di];[bx+si]=alsi++di++判断zf是否为0是bx=bx+si退出代码datasegmentbufdb24db?db24dup(?)Datasourcedw0,100dup(?);最大学生人数NameIndexdw0,100dup(?);第一个索引为NameIndex(1)st
此文档下载收益归作者所有