全球旧事资料 分类
POPPOPRETGETNUMBERENDP循环直到输入人数满时终止,获得输入的字符串GETINFOPROCNEARPUSHAXPUSHBXPUSHCXPUSHDXPUSHSIPUSHDIPRINTTIPTIP2MOVTMP0记录是学号还是分数XORBXBX记录每个ID的偏移量XORAXAX记录学生数目MOREPRINTTIPCRBXAXALMTMPAL0ERRHERECOUNTBAL写入人数
第28页
f微机原理软件实验报告
CMPCOUNTBALJNZHERE1JMPHERE1RETURN计数器为0则返回父程序
CMPTMP0JEPR1
CMPTMP1JEPR1PR2
PRINTTIPPRPRE1JMPHERE2
PR2HERE2
PRINTTIPPRPRE2
CALLGETIN否则接受输入CALLCHECK检查输入是否是数字且不为空CMPCHEOK0JNECHEFAIL不为零则不合法,需要重新输入CMPTMP0JEISID输入的是学号
CMPTMP1JECHEFAILPRINTTIPTIP0PRINTTIPCRMOVCHEOK0重新把返回判断位置零JMPMORE写入学号,固定为16个字符ISIDMOVDLPRES抽取需要写入字符的个数XORDHDHMOVCXDXMOVSICXINCCXMOVCHARSI把最后一个字符之后的位置填充为开始写入IDMOVTMP1表示下一个是分数ISMARK输入的是分数
第29页
f微机原理软件实验报告
CLDMOVSIOFFSETCHARMOVDIOFFSETIDADDDIBXREPMOVSB写入ID写完则为接受下一个输入BUFF作准备ADDBX16ID的偏移地址向后挪动固定的16BYTEJMPMORE跳回继续输入下一个BUFF是学号,检查、转换、写入保存ISMARKCALLCHANGECMPJEMOVJMPWRITEMARKPUSHBXMOVMOVMOVPOPMOVINCJMPRETURNPOPDIPOPSIPOPDXPOPCXPOPBXPOPAXRETGETINFOENDPBLMTMPDIAXMARKDIBL实际写入成绩BXTMP0计数清理,表明下一个输入为学号AX已接受的学生个数加一MORECHEOK0WRITEMARKERROR4CHEFAIL
第30页
f微机原理软件实验报告
获得一次BUFF输入子程序入口参数为BUFF的偏移地址,出口参数为BUFF中的字符串GETINPROCNEARPUSHAXPUSHDXPUSHDIMOVMOVINTPOPPOPPOPRETGETINENDP执行输入字符是否是数字的合法性检查CHECKPROCNEARPUSHDIPUSHCXPUSHAXXORDIDI记录CHAR读取的偏移量MOVALPRES读取输入的BUFF中的字符数CBWMOVCXAXCMPCX0判断是否输入BUFF为空JEAGAINISEMPTY为空则重新输入DXOFFSETBUFFAH0AH21HDIDXAX
CMPCXDIJERETURNCHECK
MOVAHCHARDICMPAH30HJLINVALID小于则无效字符INVALID大于则是无效字符
CMPAH39HJG
INCDI
第31页
f微机原理软件实验报告
JMPAGAINISEMPTYMOVERROR0输入为空的处理代码PRINTTIPCRCALLPRINTERRPRINTTIPCRMOVCHEOK1JMPRETURNCHECKINVALIDMOVERROR2输入不合法的处理代码PRINTTIPCRCALLPRINTERRPRINTTIPCRMOVCHEOK1RETURNCHECKPOPAXPOPCXPOPDIRETCHECKENDPr
好听全球资料 返回顶部