资源描述:
《c0扩充文法编译器测试报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、C0扩充文法编译器测试报告学号:________37230118____________姓名:______罗杨______________2010年1月16日191测试样例一(正确)测试样例intfib(intk){if(k==0)return(1);if(k==1)return(1);return(fib(k-1)+fib(k-2));}voidmain(){intn,result;printf("Pleaseentern:");scanf(n);printf("Fib(n)is:");result=fib(n);printf
2、(result);return;}程序输出输入一个数字,输出其斐波那契数目标代码.386.modelflat,stdcalloptioncasemap:noneincludeC:RadASMMasm32includewindows.incincludeC:RadASMMasm32includekernel32.incincludeC:RadASMMasm32includemsvcrt.incincludelibC:RadASMMasm32libmsvcrt.lib19includelibC:Ra
3、dASMMasm32libkernel32.libincludeC:RadASMMasm32includemacros.asm.datapiequ40490FCFh.codefibprocpushebpmovebp,espsubesp,100hmoveax,dwordptr[ebp+08h]cmpeax,0jne@label0_1movdwordptr[ebp-04h],1jmp@label0_2@label0_1:movdwordptr[ebp-04h],0@label0_2:cmpdwordptr[ebp-04
4、h],0jz@l1moveax,1addesp,100hpopebpret04h@l1:moveax,dwordptr[ebp+08h]cmpeax,1jne@label1_1movdwordptr[ebp-08h],1jmp@label1_2@label1_1:movdwordptr[ebp-08h],0@label1_2:cmpdwordptr[ebp-08h],0jz@l2moveax,1addesp,100hpopebpret04h@l2:moveax,dwordptr[ebp+08h]subeax,1movebx,ea
5、xmoveax,ebxpusheax19callfibmovdwordptr[ebp-010h],eaxmoveax,dwordptr[ebp+08h]subeax,2movebx,eaxmoveax,ebxpusheaxcallfibmovdwordptr[ebp-018h],eaxmoveax,dwordptr[ebp-010h]addeax,dwordptr[ebp-018h]movebx,eaxmoveax,ebxaddesp,100hpopebpret04hfibendpstart:pushebpmovebp,esps
6、ubesp,100hinvokecrt_printf,SADD("Pleaseentern:")invokecrt_scanf,SADD("%d"),addrdwordptr[ebp-04h]invokecrt_printf,SADD("Fib(n)is:")moveax,dwordptr[ebp-04h]pusheaxcallfibmovdwordptr[ebp-0ch],eaxmoveax,dwordptr[ebp-0ch]movdwordptr[ebp-08h],eaxinvokecrt_printf,SADD("%d")
7、,dwordptr[ebp-08h]addesp,100hpopebpinvokeExitProcess,NULLaddesp,100hpopebpinvokeExitProcess,NULLendstart执行结果正确192测试样例二(正确)测试样例voidmain(){inti,n,sum,sum2,temp;printf("Pleaseenterthetotalcount:");scanf(n);sum=0;sum2=0;for(i=0;i8、m2+temp*temp;}printf("Sum=");printf(sum);printf("Avg=");printf(sum/n);printf("Var=");printf(sum2/n-(sum/n)*(sum/n));return;}程序输出先输入