计算学生平均成绩实验

上传人:suij****uang 文档编号:168997498 上传时间:2022-11-14 格式:DOCX 页数:7 大小:86.66KB
收藏 版权申诉 举报 下载
计算学生平均成绩实验_第1页
第1页 / 共7页
计算学生平均成绩实验_第2页
第2页 / 共7页
计算学生平均成绩实验_第3页
第3页 / 共7页
资源描述:

《计算学生平均成绩实验》由会员分享,可在线阅读,更多相关《计算学生平均成绩实验(7页珍藏版)》请在装配图网上搜索。

1、计算机原理实验报告接口部分实验(三)名称: 计算学生平均成绩实验一、实验目的:1. 熟悉汇编语言程序的使用2. 熟悉十进制的运算、设计显示程序运行结果的格式3. 熟悉掌握DOS功能调用二、实验要求:编写程序,求30个分数的平均值,并以十进制表示将结果显示在屏幕上,显示的格式要 求如下:第一行显示:The thirty scores are:以分号分隔的30个分数;第二行显示:average scores is二求得的平均分数。三、编程算法与说明:本实验从键盘输入N个分数数据,调用DOS 10号功能,便可实现从键盘输入一个 字符串,然后将输入的字符串转为N个分数,累加,求平均值,然后将平均值除以

2、N取 余数,余数入栈,然后出栈输出到屏幕即可。DOS 10号功能调用说明:MOV AH,0AH是从键盘输入字符到缓冲区。调用参数:DS:DX二缓冲区首地址DS: DX=缓冲区最大字符数。返回参数:DS:DX+1=实际输入的字符数DS:DX+2=字符串首地址四、程序流程图:五、程序清单:data segmentinfor1 db 201081516 linyun,0dh,0ah,$infor2 db please input the scores split by ; ,0dh,0ah,$ first db 0dh,0ah,The scores are: ,$second db The aver

3、age score is = ,$limit db 200 numb db ?msg db 200 dup(0) count dw ?data ends;最大能从键盘输入200个字符;实际输入的字符 ;从键盘输入的字符首地址 ;统计输入的分数个数code segmentassume cs:code,ds:datastart:mov ax,datamov ds,axlea dx, infor1mov ah,9int 21h lea dx,infor2mov ah,9int 21h mov dx,offset limit ;DOS 10号功能调用 mov ah,0ahint 21hmov bl,n

4、umbmov bh,0mov byte ptr msgbx,$;numb为实际输入的值;将最后一个字符为$,表示字符串的结尾 lea dx,firstmov ah,9int 21h lea dx,msgmov ah,9int 21hmov dl,0dh ;回车换行mov ah,2int 21hmov dl,0ahmov ah,2int 21h lea dx,secondmov ah,9int 21h lea bx,msgmov dl,0;用dl统计分数的个数circle:mov al,bx cmp al,$ je main cmp al,; jne next inc dlmov cx,0fff

5、fh;统计分数的个数,由于分数之间是用逗号隔开的,所以统计逗;号的个数就是分数的个数;碰到字符串结尾跳出循环next: inc bx loop circlemain:lea bx,msgmov si,0mov dh,0mov count,dx;将统计到的分数个数赋给count变量,再赋给CXmov cx,count;cx为累加的次数,也就是循环的次数loop1:mov ah,00hmov al,bxsub al,30hinc bxmov dl,bxinc bxcmpdl,; ; 第二个字符为逗号则说明分数为0-9之间的数,直接跳转到累加程序 je sumsub dl,30h ;如果是10-99

6、之间的数,十位乘以10加上各位 mov ah,10mul ahmov dh,00hadd ax,dxinc bx sum:add si,ax;累加的值在si寄存器中loop loop1 mov ax,simov cx,countdiv cl;总分数除以个数就是平均值,存与AL中mov ah,0;平均值存在AX中 ;接下来的程序是将AX里的值转为ascii码输出到屏幕mov bp,sp;先保存下栈顶指针的值label01:mov cl,10div cl;将ax除以10取余数cmp al,0;若余数已经是0,说明已经全部除尽,也就是只有最后一个余数没有je label02;入栈了mov dx,ax

7、;保存一下ax中的余数和商mov cl,8shr ax,cl;通过移位操作,取出AX中的余数ahpush ax;余数入栈mov al,dland ax,00ffh;将商取出再赋给AX,再进行除10取余运算jmp label01label02:mov cl,8shr ax,clpush ax;将最后一个余数进栈 label03:pop ax;ax出栈并调用中断的2号功能现在在控制台mov dl,aladd dl,30hmov ah,02hint 21hcmp bp,sp;由于原先保存了栈顶指针,所以将现在的栈顶指针和原先的比较jne label03 mov ah,4ch int 21h code

8、 ends end start六、实验结果:从键盘输入6个分数,运行结果如下:C:S1118Z01G81516 1inyun please input the scores split by :旳;56;The scores are: 10;Z0;5Z;7;89;56; The auerage score is = 39C:S10+20+52+7+89+56) /6=39 验证程序是正确的。从键盘输入20个数:C:S1118201061516 1inyunplease input the scores split by ; 10;Z0;Z5;65;47;85;33;66;8;74;45;54;

9、Z3;5&;3;6;65;6Z;3a;35;The scores are: 10;Z0;Z5;65;47;85;93;66;8;74;45;54;23;5&;9;6;65;62;38;95;The average score is = 47C:S(10+20+25+65+47+85+93+66+8+74+45+54+23+56+9+6+65+62+38+95) /20=47.3验证程序是正确的。从键盘输入30个数:C:S1118201G81516 1inyunplease input the scores split by :78;89;96;85;74;5Z;65;56;48;85;79;8

10、3;8Z;81;94;99;86;8Z;87;89;94;75;74;71;83;9Z;41 ;4Z;51;53;The scores are: 78;89;96;85;74;52;65;56;48;85;79;83;82;81;94;99;86;82;87;89;94;7 5;74;71;83;9Z;41;4Z;51;53;The auerage score is = 75C:S平均值为75.5,程序正确。七、实验体会:本次试验难点在于从键盘读入30个数据,我想到的是利用DOS 10号功能调用,直 接能从键盘读入字符串,并存在数据段中,不用循环调用 DOS 1 号功能。由于有了前两 次实验上级的积累,在将 16 进制用十进制输出的过程中,比较顺利的完成了。实验较 为成功。学生签字:日期:

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!