汇编语言编写的学生信息录入统计系统Word格式文档下载.docx

上传人:b****3 文档编号:16792876 上传时间:2022-11-26 格式:DOCX 页数:19 大小:17.65KB
下载 相关 举报
汇编语言编写的学生信息录入统计系统Word格式文档下载.docx_第1页
第1页 / 共19页
汇编语言编写的学生信息录入统计系统Word格式文档下载.docx_第2页
第2页 / 共19页
汇编语言编写的学生信息录入统计系统Word格式文档下载.docx_第3页
第3页 / 共19页
汇编语言编写的学生信息录入统计系统Word格式文档下载.docx_第4页
第4页 / 共19页
汇编语言编写的学生信息录入统计系统Word格式文档下载.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

汇编语言编写的学生信息录入统计系统Word格式文档下载.docx

《汇编语言编写的学生信息录入统计系统Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《汇编语言编写的学生信息录入统计系统Word格式文档下载.docx(19页珍藏版)》请在冰豆网上搜索。

汇编语言编写的学生信息录入统计系统Word格式文档下载.docx

'

'

$'

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1