如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
南京信息工程大学应天校区2006级计算机科学与技术专业微型机系统与接口课程设计报告设计题目1求最大值、最小值和平均值设计题目2LED报警灯学号:姓名:指导教师:完成日期:软件设计报告设计题目设计80x86汇编语言程序,求10个无符号数的最大值、最小值和平均值(可键盘输入数据,屏幕输出显示结果)。求最大值、最小值、平均值,要求编写子程序实现。设计要求(1)从键盘输入10个无符号数。(2)通过调用子程序求出最大值、最小值、平均值,并将结果打印在屏幕上。三、程序流程图如图1所示:(a)求最大值(c)求平均值(b)求最小值图1四、源程序及注释说明CRLFMACRO;回车,换行MOVAH,02HMOVDL,0DHINT21HMOVAH,02HMOVDL,0AHINT21HENDMDATASEGMENTNUMEQU10;数字个数MESSDB'INPUT10NUMBERS:',0DH,0AH,'$'MESS1DB'THEMAXIMUMIS$'MESS2DB'THEMINIMUMIS$'MESS3DB'THEAVERAGEIS$'ERRORDB'INPUTERROR!$'BUFFDWNUMDUP(?);缓存数组AVRDW0;平均值DATAENDSSTACKSEGMENTSTADW32DUP(?)STACKENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKORG100HSTART:MOVAX,DATAMOVDS,AX;显示提示输入信息MOVAH,09HMOVDX,OFFSETMESSINT21H;输入数值MOVCX,NUMLEASI,BUFFL1:CALLGETNUMMOV[SI],DXADDSI,2LOOPL1;求最大值MOVAH,09HMOVDX,OFFSETMESS1INT21HCALLMAXNUM;求最小值MOVAH,09HMOVDX,OFFSETMESS2INT21HCALLMINNUM;求平均值MOVAH,09HMOVDX,OFFSETMESS3INT21HCALLAVRNUMMOVAH,4CHINT21H;接收键入数值子程序GETNUMPROCNEARPUSHCXXORDX,DX;DX清MOVBX,10;BX存基数G1:PUSHDX;保护DX内容MOVAH,01H;输入一个字符INT21HCMPAL,0DH;输入是否是回车JZG4CMPAL,20H;输入是否是空格JZG4CMPAL,30H;ASCII码是否小于'0'JBG3CMPAL,39H;ASCII码是否大于'9'JAG3SUBAL,30H;ASCII码转换为数字XORAH,AHMOVDX,AX;新输入的数送DX保存POPAX;栈中的数送AXPUSHDX;保护新输入的值MULBX;AX乘以,结果送DX:AXCMPDX,0;判断乘积是否超过JNZG2POPDXADDDX,AX;将AX与新输入的值相加,结果送DXJCG2;判断和是否超过JMPG1G2:POPDX;超过的数赋值为MOVDX,0FFFFHPUSHDXG3:MOVAH,09H;输入错误MOVDX,OFFSETERRORINT21HG4:CRLFPOPDXPOPCXRETGETNUMENDP;显示子程序DISPLAYPROCNEARPUSHCXXORCX,CX;CX清XORDX,DX;DX清MOVAX,[SI];SI由调用程序传入MOVBX,10;BX存基数CMPAX,0;判断AX是否为JZD2D1:DIVBXCMPAX,0;判断商是否不为JNZD2CMPDX,0;判断余数是否为JZD3D2:PUSHDX;保存余数INCCX;CX统计数字的位数XORDX,DX;DX清JMPD1;转到D1,继续D3:POPDX;依次输出栈中的数XORDH,DH;DH清ADDDL,30H;数字转换为ASCII码MOVAH,02H;输出一个字符INT21HLOOPD3D4:CRLFPOPCXRETDISPLAYEN