计算机组成技术.doc

上传人:scccc 文档编号:12008684 上传时间:2021-12-01 格式:DOC 页数:20 大小:228KB
返回 下载 相关 举报
计算机组成技术.doc_第1页
第1页 / 共20页
计算机组成技术.doc_第2页
第2页 / 共20页
计算机组成技术.doc_第3页
第3页 / 共20页
亲,该文档总共20页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《计算机组成技术.doc》由会员分享,可在线阅读,更多相关《计算机组成技术.doc(20页珍藏版)》请在三一文库上搜索。

1、计算机组成技术-大作业-第2题 程序说明第2题程序说明题目有一组八位无符号数,求出其中的最大值 max最小值min,以及平均值avg(不考虑余数), 请画出框图并编写完整程序。程序简单说明程序中number和DataSource(O)表示数组 长度(以字型进行访问)。程序核心是一个循环 找出最大数、最小数、数组总和。输出中用到了 八位无符号二进制数转化为ascii码。代码流程 图中同一行中的代码,是可以并行的、不分先后 顺序的。程序执行结果此结果是对 24, 100, 35, 67, 78, 96, 57, 18, 39, 10, 11, 132, 13, 14 来说的。bp=caHdbxou

2、t子程序(输出)流程图。输出 max min、 avg存储单元中内容。si JMaxString (三个提示)地址;dx=si ;输出dx指向的字符串;al=di;bx J maxm inav( 临时数据区)地址si=EBi naryAscii子程序(八位无符号二进制数转 化为ascii码)流程图。al为目标操作数,bx 为结果存放位置,结束时bx为结果存放位置的下一个有效位置。第一个循环:除 10取余,第二个循环:去掉数字中可能有的 0al=al+30h ;bx+di=al ;al=bx+bx=bx代码data segme ntnumber db 14 ;高字节存在 DataSource(O

3、)中,number子操作DataSourcedb00,24,100,35,67,78,96,57,18,39,10,11,132,13,14;DataSource+1指向第一个元素位置max db 0min db 0avg db 0MaxStri ng db 'max:','$'Mi nStri ng db 'mi n:',$AvgStri ng db 'avg:',$maxm in avg db 5 dup(?)In dex dw 0 ;错误提示y db 'The nu mber of array eleme nts i

4、s0 !','$'data ends stack segme ntdb 100 dupstack endscode segme ntassume ds:data,cs:code,ss:stackbegi n:dbxpri nt macro ; 输出字符串宏mov ah,09hint 21hendm dbxpri ntmov ax,datamov ds,axmov ax,stackmov ss,axmov sp,100mov bx,offset DataSource ; 数据源地址mov si,word ptr number ;数组最大为 65535cmp si,0 ;判

5、断数组是否合法jnz Can Startmov ax,0 call dbxerror错误提示jmp exitCan Start:xor di,di ;di存最大值or bp,OOOOffffh ;bp存最小值xor dx,dx ;dx:ax存所有元素之和,最大为4294967295xor ax,ax循环找数暂存器循环找数xor cx,cx ; lop:;mov cl,bx+sicmp di,cxja RelativelyLarge mov di,cxRelativelyLarge: cmp bp,cx jb RelativelySmall mov bp,cxRelativelySmall: a

6、dd ax,cx adc dx,0dec sijnz lopmov bx,word ptr n umberdiv bxmov cx,bp ; 保存 max min、avgmov bx,dimov max,blmov mi n,clmov avg,alcall dbxoutexit:mov ax,4c00hint 21hdbxout proc n ear ; 输出mov si,offset MaxStri ngmov di,offset maxmov cx,3outlop:mov dx,si ; 输出 maxdbxpri ntmov al,byte ptr dimov bx,offset max

7、m in avgmov dx,bxcall EBin aryAsciimov byte ptr bx,09hinc bxmov byte ptr bx,'$'dbxpri ntadd si,5inc diloop outlopretdbxout endpdbxerror proc near ;错误提示,ax 错误编号push dxpush bxshl ax,1mov bx,axmov ax, I ndexbxmov dx, offset y add dx,axmov ah,09hint 21hpop bxpop dxretdbxerror endp八位无符号二进制bx为结果存放

8、位置EBi naryAscii proc n ear ; 数转化为ascii码;al为目标操作数,输出bx为后一个位置push di push cx push dxpush simov di,2mov dx,10ebalop1:cmp al,0ahjb ebaoklxor ah,ahdiv dladd ah,30hmov bx+di,ahdec dijmp ebaloplebaokl:add al,30hmov bx+di,almov cx,03hsub cx,dixor si,siebalop2:;去掉数字中前面可能有的零mov al,bx+dimov bx+si,alinc siinc diloop ebalop2add bx,sipop sipop dxpop expop diretretEBi naryAscii endpcode endsend begi n

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

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1