次图。答:见下文“实验过程”中所示。4给出输出显示的形式。答:输出以列表形式给出。学号、分数、名次各一列。具体形式参见实验分析部分的输出截图。
四、实验过程
一流程图一流程图
第24页
f微机原理软件实验报告二模块层次图二模块层次图
三源代码三源代码
DATASEGMENTIDDB400DUP存储学号,每个16固定个BYTE,存储为字符串MARKDB20DUP存储分数,每个1BYTE,存储为二进制数RANKDB20DUP存储排名,每个1BYTE,存储为二进制数RANKTMPDB20DUP排序时指针临时区MTMPDB记录成绩的临时区COUNTBDB记录总的学生的个数,存为8位COUNTWDW记录总的学生个数,存为16位CHEOKDB输入检查标志位ERRORDB记录错误号TMPDB2DUP开辟两个内存临时存储区,用作判断和计数CRDB0DH0AH回车换行TABDB09H09H输出TAB键
第25页
f微机原理软件实验报告
ERR0DBI
putca
otbeemptyERR2DBCharacterisi
validERR4DBMarkisi
validERR6DBI
putisi
validERRLISTDWERR0ERR2ERR4ERR6TIP0DBPleaserei
putTIP1DBPleasei
put
umberofstude
tsTIP2DBPleasei
putIDa
dMARKPRTIPDBRESULTPRINFODBID09H09HMARK09H09HRANKPRPRE1DBID
PRPRE2DBMARKBUFFDB16定义输入缓冲区,最长的字符长度PRESDB存储实际输入了多少个字符CHARDB16DUP实际可存储有效字符16个DATAENDSCODESEGMENT打印提示字信息的宏形参为PARAPRINTTIPMACROPARAPUSHAXPUSHDXMOVAH09HMOVDXOFFSETPARAINT21HPOPDXPOPAXENDM打印单个字符的宏,形参为ACHARPRINTCHARMACROACHARPUSHAXPUSHDXMOVAH02H
第26页
f微机原理软件实验报告
MOVDLACHARINT21HPOPDXPOPAXENDM主程序MAINPROCFARASSUMECSCODEDSDATAESDATAMOVAXDATAMOVDSAXMOVESAXCALLGETNUMBER获得学生的人数CALLGETINFO获得学号分数的输入CALLSORT执行排序活动名次CALLPRINT把名次结果打印出来BACKMOVAX4C00H返回DOSINT21HMAINENDP获得将要输入的学生的人数信息的子程序每班的学生定义不超过100人GETNUMBERPROCNEARPUSHAXPUSHBXHEPRINTTIPTIP1
GREPCALLGETIN获取一个输入缓冲MOVCHEOK0
CALLCHECKCMPJEMOVCHEOK0GRETURNERROR6
CALLPRINTERRPRINTTIPTIP0
第27页
f微机原理软件实验报告
PRINTTIPCRJMPERRHEREGREP
PRINTTIPCRMOVERROR6
CALLPRINTERRPRINTTIPTIP0JMPGREPGRETURNCALLCHANGEMOVCMPJEMOVCBWMOVCOUNTWAXPRINTTIPCRr