欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    C0扩充文法编译器测试报告 .doc

    • 资源ID:3022277       资源大小:83KB        全文页数:19页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C0扩充文法编译器测试报告 .doc

    C0扩充文法编译器测试报告学号:_37230118_姓名:_罗杨_2010年 1月 16日1测试样例一(正确)测试样例int fib(int k)if (k=0)return (1);if (k=1)return (1);return (fib(k-1)+fib(k-2);void main()int n,result;printf("Please enter n: ");scanf(n);printf("Fib(n) is: ");result=fib(n);printf(result);return ;程序输出输入一个数字,输出其斐波那契数目标代码.386.model flat,stdcalloption casemap:noneincludeC:RadASMMasm32includewindows.incincludeC:RadASMMasm32includekernel32.incincludeC:RadASMMasm32includemsvcrt.incincludelib C:RadASMMasm32libmsvcrt.libincludelib C:RadASMMasm32libkernel32.libincludeC:RadASMMasm32includemacros.asm.datapiequ40490FCFh.codefibprocpushebpmovebp,espsubesp,100hmoveax,dword ptr ebp+08hcmpeax,0jnelabel0_1movdword ptr ebp-04h,1jmplabel0_2label0_1:movdword ptr ebp-04h,0label0_2:cmpdword ptr ebp-04h,0jzl1moveax,1addesp,100hpopebpret04hl1:moveax,dword ptr ebp+08hcmpeax,1jnelabel1_1movdword ptr ebp-08h,1jmplabel1_2label1_1:movdword ptr ebp-08h,0label1_2:cmpdword ptr ebp-08h,0jzl2moveax,1addesp,100hpopebpret04hl2:moveax,dword ptr ebp+08hsubeax,1movebx,eaxmoveax,ebxpusheaxcallfibmovdword ptr ebp-010h,eaxmoveax,dword ptr ebp+08hsubeax,2movebx,eaxmoveax,ebxpusheaxcallfibmovdword ptr ebp-018h,eaxmoveax,dword ptr ebp-010haddeax,dword ptr ebp-018hmovebx,eaxmoveax,ebxaddesp,100hpopebpret04hfibendpstart:pushebpmovebp,espsubesp,100hinvokecrt_printf,SADD("Please enter n: ")invokecrt_scanf,SADD("%d"),addr dword ptr ebp-04hinvokecrt_printf,SADD("Fib(n) is: ")moveax,dword ptr ebp-04hpusheaxcallfibmovdword ptr ebp-0ch,eaxmoveax,dword ptr ebp-0chmovdword ptr ebp-08h,eaxinvokecrt_printf,SADD("%d"),dword ptr ebp-08haddesp,100hpopebpinvokeExitProcess,NULLaddesp,100hpopebpinvokeExitProcess,NULLendstart执行结果正确2测试样例二(正确)测试样例void main()int i,n,sum,sum2,temp;printf("Please enter the total count:");scanf(n);sum=0;sum2=0;for ( i=0; i<n; i=i+1)scanf(temp);sum=sum+temp;sum2=sum2+temp*temp;printf("Sum=");printf(sum);printf("Avg=");printf(sum/n);printf("Var=");printf(sum2/n-(sum/n)*(sum/n);return;程序输出先输入数n,回车,再输入n个数,用回车分隔,最后显示这n个数的和,平均数和方差。目标代码 .386.model flat,stdcalloption casemap:noneincludeC:RadASMMasm32includewindows.incincludeC:RadASMMasm32includekernel32.incincludeC:RadASMMasm32includemsvcrt.incincludelib C:RadASMMasm32libmsvcrt.libincludelib C:RadASMMasm32libkernel32.libincludeC:RadASMMasm32includemacros.asm.data.codestart:pushebpmovebp,espsubesp,100hinvokecrt_printf,SADD("Please enter the total count:")invokecrt_scanf,SADD("%d"),addr dword ptr ebp-08hmoveax,0movdword ptr ebp-0ch,eaxmoveax,0movdword ptr ebp-010h,eaxmoveax,0movdword ptr ebp-04h,eaxl5:moveax,dword ptr ebp-04hcmpeax,dword ptr ebp-08hjgelabel0_1movdword ptr ebp-018h,1jmplabel0_2label0_1:movdword ptr ebp-018h,0label0_2:cmpdword ptr ebp-018h,0jzl6moveax,dword ptr ebp-04haddeax,1movdword ptr ebp-04h,eaxinvokecrt_scanf,SADD("%d"),addr dword ptr ebp-014hmoveax,dword ptr ebp-0chaddeax,dword ptr ebp-014hmovedi,eaxmoveax,edimovdword ptr ebp-0ch,eaxmoveax,dword ptr ebp-014hmovecx,dword ptr ebp-014himulecxmovesi,eaxmoveax,esiaddeax,dword ptr ebp-010hmovebx,eaxmoveax,ebxmovdword ptr ebp-010h,eaxjmpl5l6:invokecrt_printf,SADD("Sum=")invokecrt_printf,SADD("%d"),dword ptr ebp-0chinvokecrt_printf,SADD("Avg=")moveax,dword ptr ebp-0chcdqmovecx,dword ptr ebp-08hidivecxmovdword ptr ebp-028h,eaxinvokecrt_printf,SADD("%d"),dword ptr ebp-028hinvokecrt_printf,SADD("Var=")moveax,dword ptr ebp-010hcdqmovecx,dword ptr ebp-08hidivecxmovdword ptr ebp-02ch,eaxmoveax,dword ptr ebp-0chcdqmovecx,dword ptr ebp-08hidivecxmovdword ptr ebp-030h,eaxmoveax,dword ptr ebp-030hmovesi,eaxmoveax,dword ptr ebp-030hmovecx,dword ptr ebp-030himulecxmovebx,eaxmoveax,dword ptr ebp-02chsubeax,ebxmovdword ptr ebp-03ch,eaxinvokecrt_printf,SADD("%d"),dword ptr ebp-03chaddesp,100hpopebpinvokeExitProcess,NULLaddesp,100hpopebpinvokeExitProcess,NULLendstart执行结果正确3测试样例三(正确)测试样例 void main()int a,b;float c,d;printf("Please enter two intergers (A,B): ");scanf(a,b);printf("A+B=");printf(a+b);printf("A-B=");printf(a-b);printf("A*B=");printf(a*b);printf("A/B=");printf(a/b);printf("Please enter two real numbers (C,D): ");scanf(c,d);printf("C+D=");printf(c+d);printf("C-D=");printf(c-d);printf("C*D=");printf(c*d);printf("C/D=");printf(c/d);return ;程序输出先输入两个整数,会显示其四则运算结果,再输入两个实数,会显示其浮点数四则运算结果。目标代码.386.model flat,stdcalloption casemap:noneincludeC:RadASMMasm32includewindows.incincludeC:RadASMMasm32includekernel32.incincludeC:RadASMMasm32includemsvcrt.incincludelibC:RadASMMasm32libmsvcrt.libincludelibC:RadASMMasm32libkernel32.libincludeC:RadASMMasm32includemacros.asm.data.codestart:pushebpmovebp,espsubesp,100hinvokecrt_printf,SADD("Please enter two intergers (A,B): ")invokecrt_scanf,SADD("%d"),addr dword ptr ebp-04hinvokecrt_scanf,SADD("%d"),addr dword ptr ebp-08hinvokecrt_printf,SADD("A+B=")moveax,dword ptr ebp-04haddeax,dword ptr ebp-08hmovdword ptr ebp-014h,eaxinvokecrt_printf,SADD("%d"),dword ptr ebp-014hinvokecrt_printf,SADD("A-B=")moveax,dword ptr ebp-04hsubeax,dword ptr ebp-08hmovdword ptr ebp-018h,eaxinvokecrt_printf,SADD("%d"),dword ptr ebp-018hinvokecrt_printf,SADD("A*B=")moveax,dword ptr ebp-04hmovecx,dword ptr ebp-08himulecxmovdword ptr ebp-01ch,eaxinvokecrt_printf,SADD("%d"),dword ptr ebp-01chinvokecrt_printf,SADD("A/B=")moveax,dword ptr ebp-04hcdqmovecx,dword ptr ebp-08hidivecxmovdword ptr ebp-020h,eaxinvokecrt_printf,SADD("%d"),dword ptr ebp-020hinvokecrt_printf,SADD("Please enter two real numbers (C,D): ")invokecrt_scanf,SADD("%f"),addr dword ptr ebp-0chinvokecrt_scanf,SADD("%f"),addr dword ptr ebp-010hinvokecrt_printf,SADD("C+D=")movecx,dword ptr ebp-0chpushecxmovecx,dword ptr ebp-010hpushecxflddword ptr esp+4fadddword ptr espfstpdword ptr ebp-024haddesp,8flddword ptr dword ptr ebp-024hsubesp,08hfstpqword ptr espinvokecrt_printf,SADD("%f")invokecrt_printf,SADD("C-D=")movecx,dword ptr ebp-0chpushecxmovecx,dword ptr ebp-010hpushecxflddword ptr esp+4fsubdword ptr espfstpdword ptr ebp-028haddesp,8flddword ptr dword ptr ebp-028hsubesp,08hfstpqword ptr espinvokecrt_printf,SADD("%f")invokecrt_printf,SADD("C*D=")movecx,dword ptr ebp-0chpushecxmovecx,dword ptr ebp-010hpushecxflddword ptr esp+4fmuldword ptr espfstpdword ptr ebp-02chaddesp,8flddword ptr dword ptr ebp-02chsubesp,08hfstpqword ptr espinvokecrt_printf,SADD("%f")invokecrt_printf,SADD("C/D=")movecx,dword ptr ebp-0chpushecxmovecx,dword ptr ebp-010hpushecxflddword ptr esp+4fdivdword ptr espfstpdword ptr ebp-030haddesp,8flddword ptr dword ptr ebp-030hsubesp,08hfstpqword ptr espinvokecrt_printf,SADD("%f")addesp,100hpopebpinvokeExitProcess,NULLaddesp,100hpopebpinvokeExitProcess,NULLendstart执行结果正确4测试样例四(正确)测试样例float a,b,c,d;float e;void main()scanf(a);printf("input + 1.5", a + 1.5);scanf(b);printf("input * 2 - lastinput / 10", b * 2 - a / 10);程序输出输入一个实数,对其进行实数运算。目标代码.386.model flat,stdcalloption casemap:noneincludeC:RadASMMasm32includewindows.incincludeC:RadASMMasm32includekernel32.incincludeC:RadASMMasm32includemsvcrt.incincludelibC:RadASMMasm32libmsvcrt.libincludelibC:RadASMMasm32libkernel32.libincludeC:RadASMMasm32includemacros.asm.data_adword?_bdword?_cdword?_ddword?_edword?.codestart:pushebpmovebp,espsubesp,100hinvokecrt_scanf,SADD("%f"),addr _amovecx,_apushecxmovecx,3FC00000hpushecxflddword ptr esp+4fadddword ptr espfstpdword ptr ebp-04haddesp,8invokecrt_printf,SADD("input + 1.5")flddword ptr dword ptr ebp-04hsubesp,08hfstpqword ptr espinvokecrt_printf,SADD("%f")invokecrt_scanf,SADD("%f"),addr _bmoveax,2movdword ptr esp-4,eaxfilddword ptr esp-4fstpdword ptr esp-4moveax,dword ptr esp-4movebx,eaxmoveax,10movdword ptr esp-4,eaxfilddword ptr esp-4fstpdword ptr esp-4moveax,dword ptr esp-4movesi,eaxinvokecrt_printf,SADD("input * 2 - lastinput / 10")flddword ptr dword ptr ebp-018hsubesp,08hfstpqword ptr espinvokecrt_printf,SADD("%f")addesp,100hpopebpinvokeExitProcess,NULLendstart执行结果正确5测试样例五(正确)测试样例int a,b,c,d;void main()b = 20;a = 4;d = 1;c = 0;while (d != 0)if (10 * d + 1) >= a * 5)c = c + 2;a = a * 2;d = d - 4;elsed = d + 5;printf(c);程序输出屏幕输出67108918,此为溢出值目标代码.386.model flat,stdcalloption casemap:noneincludeC:RadASMMasm32includewindows.incincludeC:RadASMMasm32includekernel32.incincludeC:RadASMMasm32includemsvcrt.incincludelibC:RadASMMasm32libmsvcrt.libincludelibC:RadASMMasm32libkernel32.libincludeC:RadASMMasm32includemacros.asm.data_adword?_bdword?_cdword?_ddword?.codestart:pushebpmovebp,espsubesp,100hmoveax,20mov_b,eaxmoveax,4mov_a,eaxmoveax,1mov_d,eaxmoveax,0mov_c,eaxl0:moveax,_dcmpeax,0jelabel0_1movdword ptr ebp-04h,1jmplabel0_2label0_1:movdword ptr ebp-04h,0label0_2:cmpdword ptr ebp-04h,0jzl1moveax,10movecx,_dimulecxmovedi,eaxmoveax,ediaddeax,1movesi,eaxmoveax,_amovecx,5imulecxmovebx,eaxmoveax,esicmpeax,ebxjllabel1_1movdword ptr ebp-014h,1jmplabel1_2label1_1:movdword ptr ebp-014h,0label1_2:cmpdword ptr ebp-014h,0jzl5moveax,_caddeax,2movedi,eaxmoveax,edimov_c,eaxmoveax,_amovecx,2imulecxmovesi,eaxmoveax,esimov_a,eaxmoveax,_dsubeax,4movebx,eaxmoveax,ebxmov_d,eaxjmpl8l5:moveax,_daddeax,5movebx,eaxmoveax,ebxmov_d,eaxl8:jmpl0l1:invokecrt_printf,SADD("%d"),_caddesp,100hpopebpinvokeExitProcess,NULLendstart执行结果正确6测试样例六(错误)测试样例const int a = 1;float b;int c;void main()b = 123.456;c = b / 1.5 + 1;printf c;程序输出出错,printf缺少括号执行结果错误7测试样例七(错误)测试样例void main() int a; scanf(a); a = a+1; printf("a=", a); return程序输出出错,return缺少分号执行结果错误8测试样例八(错误)测试样例int g(int aa)int a;if(aa=1)a=1;else a=aa*g(aa-1);void main()int i;scanf(i);a=g(i);printf(a);程序输出出错,标识符a未定义执行结果错误9测试样例九(错误)测试样例void main()int fahr,celsius,lower,step;lower=0;celsius=0;step=20;fahr=lower;printf("/while statementn");while(fahr<=upper)celsius=2*(fahr-32);printf(celsius);printf("n");fahr=fahr+step;printf("/while statementn");程序输出标识符upper未定义执行结果错误10测试样例十(错误)测试样例int f(int a)if(a=1)a=1;else a=a*f(a-1,1);return(a);void main()int i,a;printf("please input n =:n");scanf(i);a=f(i);printf("n! = %dn",a);程序输出出错,函数调用时参数个数不符定义执行结果错误

    注意事项

    本文(C0扩充文法编译器测试报告 .doc)为本站会员(仙人指路1688)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开