TIPCRPRINTTIPPRTIP打印提示信息
第36页
f微机原理软件实验报告
PRINTTIPCRPRINTTIPPRINFOPRINTTIPCRMOVCXCOUNTWCX用于保存学生人数XORSISISI用于指明当前处理的学生的序号XORBXBXBX保存当前输入的学号偏移量,每次增16NEXPRINTMOVTMP10对打印名次置标志位,表明没有打印名次CMPSICXJNEPRINTIDJMPPRETPRINTID打印学号,直接字符串打印,因结尾写入了MOVAH09HMOVDXOFFSETIDADDDXBXINT21HPRINTTIPTABPRINTMARK打印分数,分为100、1099、09三中情况打印MOVALMARKSIPRINTRANKCMPAL100JEPTTHR
CMPAL10JLPTONE
JMPPTTWOPTTHR是100则直接输出字符串即可,不必转化PRINTCHAR1PRINTCHAR0PRINTCHAR0JMPNEXTPTTWO
第37页
f微机原理软件实验报告
1099需要除以10,商和余数分别是十位和个位CBWPUSHBXMOVBL10DIVBLMOVBXAXADDBL30HADDBH30HPRINTCHARBLPRINTCHARBHPOPBXJMPNEXTPTONE09直接二进制转到ASCII码然后输出ADDAL30HPRINTCHARALNEXTPRINTTIPTAB开始打印名次,和打印成绩复用代码MOVALRANKSICMPTMP10JNEFINISHPMOVTMP11JMPPRINTRANKFINISHPPRINTTIPCR打印完一个学生的学号成绩及名次,回车换行INCSIADDBX16进行下一个学生的打印JMPNEXPRINTPRETPOPSIPOPDXPOPCXPOPBX
第38页
f微机原理软件实验报告
POPAXRETPRINTENDPCODEENDSENDMAIN
四实验分析四实验分析输入输出格式如下图所示。首先提示输入学生人数,然后逐个提示输入学号和分数,输入完毕之后打印出最终结果,结果输出按照表格的形式给出,三列分别为学号、分数、排名。
设计输入的学生个数上限是100人。分数从0100分。学号可以输入任意长度的15位数字,存储为字符串格式,每个学生固定长度。分数经过转换后存储为数字,每人占用一个BYTE。名次亦存储为数字,每人占用一个BYTE。下图演示了错误输入时的处理,根据错误类型打印出提示,并允许进行重新输入,而不用退出程序。
第39页
f微机原理软件实验报告
本程序设计的主要特点如下:1、在程序设计思路上,采用了多子程序模块化设计,充分利用了宏和DOS功能调用等高级汇编技巧。2、在数据结构设计上,采用数组的方式进行存储,可直接又下标(即学生的班内序号)进行直接寻址,效率较高。3、在进行排名比较时,利用了指针技术,即对分数的偏移量进行排序,而不移动实际的分数。模拟了高级语言中的数组和指针的技术,结构和思路完整规范。排序技术选用了冒泡排序,获得一定的性能提升。4、对用户输入进行严格的检查,对各种可能出现的错误进行了提r