汇编语言编写的学生信息录入统计系统Word格式文档下载.docx
- 文档编号:16792876
- 上传时间:2022-11-26
- 格式:DOCX
- 页数:19
- 大小:17.65KB
汇编语言编写的学生信息录入统计系统Word格式文档下载.docx
《汇编语言编写的学生信息录入统计系统Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《汇编语言编写的学生信息录入统计系统Word格式文档下载.docx(19页珍藏版)》请在冰豆网上搜索。
'
'
$'
innamedisdb'
pleaseinputthenameofthestudent:
inclassdisdb'
pleaseinputtheclassofthestudent:
inscoredisdb'
pleaseinputthescoreofthestudent:
(eg:
81.2)'
dis1db'
Thisisastatisticsprogramofstudentscorebyyuanlin'
dis2db'
--number
(2)--name(3)--class
(2)--score(4)--'
disavscdb'
theaveragescoreofstudentis:
dis_errordb'
pleaseinputagain'
disdb'
whatdoyouwanttodo?
1forinput,2fordisplay,3fornumsort,4forscoresort,5foraverscore,6forstunumofscore,7fordelete,8forsearch,'
q'
forexit:
dis_errdb'
thenumberyouinputiswrong,backtothemainmenu'
dis_scFdb'
Thenumofstudentsscorebelow60is:
'
dis_scDdb'
Thenumofstudentsscorebetween60and70is:
dis_scCdb'
Thenumofstudentsscorebetween70and80is:
dis_scBdb'
Thenumofstudentsscorebetween80and90is:
dis_scAdb'
Thenumofstudentsscorebetween90and100is:
dis_deledb'
Pleaseinputthenumberofthestudentyouwanttodeleteor00todeleteallthestudent:
dis_searchdb'
Pleaseinputthenumberofthestudentyouwanttosearch:
dataends
stacksegmentstack
dw100Hdup(?
)
stackends
codesegment
assume:
cs:
code,ds:
data,ss:
stack
start:
movax,data
movds,ax
movax,stack
movss,ax
movsp,100H
movdx,offsetdis1;
欢迎语句
---------------------------------------主程序开始-------------------------------
main:
cr
movdx,offsetdis;
提示功能符
movah,08h;
输入用户的操作并判断,进而转入子程序
cmpal,'
1'
jzinput
2'
jzdisplay
3'
jznumsort
4'
jzscoresort
5'
jzaverscore
6'
jzstunumsta
7'
jzdelete
8'
jzsearch
jzexit
-------输入学生信息部分---------------------------------------------------------
input:
callinput_pro
jmpmain
-------显示所有学生资料---------------------------------------------------------
display:
calldisplay_pro
-------按学号排序---------------------------------------------------------------
numsort:
callnumsort_pro
-------按分数排序---------------------------------------------------------------
scoresort:
callscoresort_pro
jmpmain
-------平均成绩显示-------------------------------------------------------------
averscore:
callaverscore_pro
-------学习成绩分段显示---------------------------------------------------------
stunumsta:
callstunumsta_pro
-------修改数据-----------------------------------------------------------------
delete:
calldelete_pro
-------查找学生信息------------------------------------------------------------
search:
callsearch_pro
-------退出程序-----------------------------------------------------------------
exit:
jmpexit_pro
exit_pro:
movah,4Ch
-------------------------------------------------------------------------------
--------------------子程序-----------------------------------------------------
input_proprocnear
movdx,offsetinnumdis;
显示提示输入学号语句
--------输入学号(若为1请输入01)------------------------
movbx,0
cr
in_cmpL:
movax,wordptr[stu+bx]
cmpax,0
jzin_num
jmpin_cmpL
in_num:
movah,01h
mov[stu+bx],al
mov[stu+bx+1],al;
输入学号
movdx,offsetinnamedis
addbx,2
movcx,3
movsi,0
in_name:
movah,01h;
输入姓名
cmpal,0dh
jzin_class
mov[stu+bx+si],al
incsi
LOOPin_name
in_class:
movdx,offsetinclassdis
int21h
addbx,3;
输入班级
mov[stu+bx+1],al
movdx,offsetinscoredis
in_score:
addbx,2;
格式为81.2、81.0
movcx,4
in_scoreL:
mov[stu+bx+si],al
LOOPin_scoreL
addbx,4
moval,'
ret
input_proendp
-------------------------------------------------------------------------------
display_proprocnear
movdx,offsetdis2;
显示提示语句
disp:
movax,wordptr[stu+bx]
jzover_dis
leadx,stu+bx
jmpdisp
over_dis:
ret
display_proendp
numsort_proprocnear
movbx,-12
比较加排序
L8:
movsi,12
addbx,12
比较学号
movax,wordptr[stu+bx]
jzover_numsort
nums:
movdx,wordptr[stu+bx+si]
cmpdx,0
jzL8
moval,[stu+bx]
movdl,[stu+bx+si]
cmpal,dl
jasortnu;
sort是排序程序
moval,[stu+bx+1]
movdl,[stu+bx+si+1]
jasortnu
addsi,12
jmpnums
sortnu:
movax,ds
moves,ax
pushsi
leadi,stu_bei
leasi,[stu+bx+si]
cld
movcx,11
repmovsb
popsi
leadi,[stu+bx+si]
leasi,[stu+bx]
leasi,stu_bei
leadi,[stu+bx]
repmovsb
popsi
over_numsort:
calldisplay_pro
ret
numsort_proendp
scoresort_proprocnear
movbx,-5
movsi,12;
score_cmp:
movax,wordptr[stu+bx-7]
jzover_scsort
score_L:
movax,wordptr[stu+bx-7+si]
jzscore_cmp
moval,[stu+bx]
movdl,[stu+bx+si]
jbsortsc;
moval,[stu+bx+1]
jbsortsc
moval,[stu+bx+3];
如果整数部分一样则比较小数部分
movdl,[stu+bx+si+3]
jbsortsc
jmpscore_L
sortsc:
leasi,[stu+bx+si-7]
leadi,[stu+bx+si-7]
leasi,[stu+bx-7]
leadi,[stu+bx-7]
over_scsort:
scoresort_proendp
------------------------------------------------------------------------------
averscore_proprocnear
movdx,offsetdisavsc;
作为累加器
movbx,0;
计数器
movcx,0
movsi,7
aveL:
movax,wordptr[stu+si];
判断学号空间是否为空,若为空则跳出
jzover_ave
movax,0
movdx,0
movdl,[stu+si]
moval,[stu+si+1]
subdl,30h
subal,30h
shldl,4
adddx,ax
addcx,dx
incbx
jmpaveL
over_ave:
movdx,0
movax,cx
divbl;
AL中为平均值,AH中为余数
movbl,0
pushax
andax,0f00h;
小数存入CH中,CL为进位
shrax,8
cmpal,9
jnano_flow
subal,10
inccl
no_flow:
addal,30h
movch,al
popax
pushax
andax,0fh;
取AL低位并将其变为10进制输出
jnanoflow
incbl;
代表低位向高位进位
noflow:
movdh,al;
DH中存低位
andax,0f0h
shrax,4
addal,bl;
加上进位
jnano_low
movdl,1
no_low:
addal,30h
movdl,al
movdl,dh
movdl,'
.'
movdl,ch
averscore_proendp
stunumsta_proprocnear
movbl,30h
movF,bl;
先将各分数段清零
movD,bl
movC,bl
movB,bl
movA,bl
movcl,1
stu_l:
movax,wordptr[stu+bx];
累计各分数段人数
jzover_stusta
movah,[stu+bx+7]
cmpah,'
jbaddF
jbaddD
jbaddC
9'
jbaddB
addA:
addmA
addB:
addmB
addC:
addmC
addD:
addmD
addF:
addmF
over_stusta:
显示各分数段人数
dismA,dis_scA
dismB,dis_scB
dismC,dis_scC
dismD,dis_scD
dismF,dis_scF
stunumsta_proendp
search_proprocnear
movdx,offsetdis_search
movdh,al
pushdx
movbx,0
popdx
search_L:
jzover_search
cmpdx,ax
jzdis_sear
jmpsearch_L
dis_sear:
leadx,[stu+bx]
over_search:
search_proendp
delete_proprocnear
movdx,offsetdis_dele
cmpdx,'
00'
jzdele_all
L11:
jzerror
jzdele_num
jmpL11
dele_all:
movcx,126
deleL:
mov[stu+bx],ax
LOOPdeleL
jmpover_dele
dele_num:
用后面的数据冲掉该数据
dele_L:
jzover_dele
leasi,[stu+bx+12]
movcx,12
jmp
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 编写 学生 信息 录入 统计 系统