全球旧事资料 分类
跳转到输入成绩的子程
序,在调用shuruu宏,此功能是处理三位数,使成绩是按照三位数显示的,而
且必须是在合理的范围内的,假如输入的数据是不合理的则又跳转到重新输入的
界面,要求用户输入有效数据,数据输入完成之后则存入相对应的缓存区。

i
putproc
ear输入学生学号,成绩
e6outputmess1
shuru
movbl

统计输入学生个数
movbh0
movxhbxdl输入的个数同时以地址指针形式显示
cmpbx0判断是不是第一次输入,如果是,则跳过比较程序
jeqq1继续输入成绩
movcl
如果不是第一次输入则要将输入的学号与以前输入的比较
cbw
movsi0
movalxhbx
e7cmpalxhsi
jee5
addsi1
loope7
jmpqq1
e5outputts4
jmpe6
fqq1outputmess2
如果不是重复的学号则可以继续输入成绩和其他信息
outputmess4
movsi0
movcx3
qq3shuruu
cmpdx78h比较输入的成绩是否大于120,如果大于120的话,那么重新输入成绩
jbeqq2
outputts3提示输入错误
jmpqq1
qq2movbufsidl把输入的学生信息保存在缓存区
outputbg
addsi1
loopqq3
movbl

cbw
movalbuf0以下是把之前的成绩数据保存到相对应的缓存区
movchibxal
movalbuf1
move
gbxal
movalbuf2
movmatbxal
ret
i
pute
dp

该关键代码是实现该学号学生的总分和名次的交换以及显示,首先是先把即将要
用到的存储器全部清零,将名次mcsi初值为1,si依次1,因为存放名次的
数组是字节类型的,然后把
学生的个数赋给cl,接下来就是处理查找总分的
地址指针,因为总分数组是字型所以需要使bl2然后cx清零,按照学号找到
相对应该生的总分,两个总分相比较此时大的则暂时为第一名,然后再继续接受
总分,接受的总分又要和之前暂时的第一比较然后和暂时的第二名比较,循环找
出第一名,继续循环,显示总分和名次。

ra
kproc
ear排名
movcl

movch0将用到的存储器清零
movsi0
rrcmovmcsi1将存储名次的存储器给予的初值是1
addsi1

looprrc
moval
此处2
最后放到al中,是为了下面总分的输出
fmovbl2
mulbl
movcl

movch0
movsi0
movbx0
movdi0
rrbmovdxzcdi
rracmpdxzcbx总分之间的比较
jgeco
ti
ue大于等于的那个分数则为第一名
addmcsi1
co
ti
ue
addbx2
looprra
余下的继续比较依次排出名次
movcl

cbw
addsi1
名次是字节类型的
adddi2
总分是字类型的
movbx0
cmpsiax
ax里面是2
为了找到总分输出
jberrb
ret
ra
ke
dp

七、结果显示
菜单显r
好听全球资料 返回顶部