




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C#程序设计实验报告PAGE2计算机学院实验报告课程名称汇编语言程序设计实验名称计算阶乘姓名学号专业软件工程班级地点第一实验楼教师实验题目用汇编语言编写程序计算阶乘N!数值有键盘输入,结果在屏幕上面输出。流程图实验代码代码要配合程序界面进行说明源代码:DATASSEGMENTSTRINGDB"Pleaseinputanumber(0-10000):",0dh,0ah;提示用户输入数字字串WRONGSTRINGDB"Wronginput!!!Pleaseinputanumber!",0ah,0dh,'$';用户输入错误提示INPUTBUFFERDB6,?,6DUP(?);开辟出(留出)6个初值未知的字节单元空间C10DW10;输入时进制转换的数NDW?;要求阶乘的数MDW?;步长TDW?;进位IDW?OUTPUTBUFFERDW30000DUP(?);开辟出(留出)30000个初值未知的字单元空间DATASENDSSTACKSSEGMENT;此处输入堆栈段代码STACKSENDSCODESSEGMENTASSUMECS:CODES,DS:DATAS,SS:STACKSSTART:MOVAX,DATASMOVDS,AXMAINPROC;主程序;CALLINPUT;调用输入子程序CALLFAC;调用递归实现阶乘MOVCX,DIROUTPUT:;输出结果PUSHCXMOVDI,CXCALLOUTPUT;显示输入的数字POPCXDECCXCMPCX,0JGEROUTPUTDISPLAYLENGTH:;显示长度MOVDl,0DHMOVAH,2INT21HMOVDl,0AHMOVAH,2INT21hEXIT:;退出MOVAH,07HINT21HMOVAX,4C00HINT21HMAINENDP;INPUTPROCNEAR;输入子程序LEABX,STRING;指向输入字符的地址MOVCX,33;循环的次数DISSTRING:MOVDl,[BX]MOVAH,2;显示一个字符在屏幕上INT21HINCbxLOOPDISSTRING;循环输出显示JMPINPUTINITWRONGINPUT:;用户输入错误提示LEADX,WRONGSTRINGMOVAH,9INT21HINPUTINIT:;输入初始化LEADX,INPUTBUFFER;装载输入缓冲区首地址MOVAH,0AH;输入功能代码INT21H;从键盘输入一个数,以回车键结束MOVAX,0;累加器清0MOVCl,INPUTBUFFER+1;循环次数MOVCH,0LEABX,INPUTBUFFER+2;装载字符存放区首地址INPUTONE:;输入过程MULC10;乘以要转换成的进制数MOVDl,[BX]CMPDl,'0';判断输入是否小于0JBWRONGINPUTCMPDl,'9'JAWRONGINPUT;判断某位上的数字是否大于9ANDDl,0FHADDAl,DlADCAH,0;带进位的加法INCBX;加1LOOPINPUTONE;循环输入MOVN,AX;显示低位MOVDl,0DHMOVAH,2INT21HMOVDl,0AH;显示高位MOVAH,2INT21HRETINPUTENDP;FACPROCNEARMOVCX,N;取阶乘的次数nMOVI,1DMOVM,0DPUSHDXMOVDI,0DMOVAX,DIMOVBX,2DmulBX;计算n!=n*(n-1)!MOVSI,AX;将n!的值保存在si中popDXMOVOUTPUTBUFFER[SI],1DCTRLI:MOVT,0MOVDI,0DCTRLDI:CMPDI,MJBEDONEjmpCMPCDONE:PUSHDXMOVAX,DIMOVBX,2DmulBXMOVSI,AXPOPDXMOVAX,OUTPUTBUFFER[SI]MOVBX,IMULBXADDAX,TADCDX,0MOVBX,10000DIVBXMOVT,AXPUSHDXMOVAX,DIMOVBX,2DMULBXMOVSI,AXPOPDXMOVOUTPUTBUFFER[SI],DXINCDIJMPCTRLDICMPC:CMPT,0JATHREE1JMPNEXTTHREE1:INCMMOVAX,TMOVOUTPUTBUFFER[SI+2],AXNEXT:INCICMPCX,0JNGIF0LOOPCTRLIIF0:MOVDI,MRETFACENDP;OUTPUTPROCNEARC2:PUSHDXMOVAX,DIMOVBX,2DmulBXMOVSI,AXPOPDXMOVBX,OUTPUTBUFFER[SI]BIDPROC;判断位数MOVCX,10000MOVAX,BXMOVDX,0DIVCXMOVBX,DXMOVCX,1000CALLDDIVMOVCX,100CALLDDIVMOVCX,10CALLDDIVMOVCX,1CALLDDIVRETBIDENDP;DDIVPROC;除法子程序MOVAX,BXMOVDX,0DIVCXMOVBX,DXMOVDl,AlADDDl,30HMOVah,02HINT21HRETDDIVENDPRETOUTPUTENDP;CODESENDSENDSTART运行过程以及结果1.输入数字4,显示的结果应该为24,下图表明结果正确2.输入数字5,显示的结果应该为120,下图表明结果正确3.当输入的字符不是数字而是其他时,程序会给出提示错误信息4.输入数字6,显示的结果应该为720,下图表明结果正确5.输入数字8,显示的结果应该为40320,下图表明结果正确6.输入数字9,显示的结果应该为362880,下图表明结果正确7.输入数字10,显示的结果应该为3628800,下图表明结果正确8.输入数字15,显示的结果应该为1307674368000,下图表明结果正确9.输入数字20,显示的结果应该为2432902008176640000,下图表明结果正确10.输入数字30,由上面的运行结果得知,下图显示结果在理论上应该正确11.输入数字80,由上面的运行结果得知,下图显示结果在理论上应该正确11.输入数字100,由上面的运行结果得知,下图显示结果在理论上应该正确实验总结1.本次实验的目的是通过对子程序的应用来实现对N!的计算,其特点在于利用子程序将主程序分为几个
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 保安心理素质训练的试题及答案
- 考生必读的保安证考试试题及答案
- 2025年保安证考试返考攻略试题及答案
- 课题申请书可行性分析
- 安全管理保安证试题及答案
- 有机肥料可行性报告
- 2025年保安证考试新技能试题及答案
- 中国社会科学院大学《计算方法及软件应用》2023-2024学年第二学期期末试卷
- 浙江农业商贸职业学院《麻醉拔牙及齿槽外科学》2023-2024学年第二学期期末试卷
- 13 学前教育中的游戏教学策略试题及答案
- 河南省驻马店市泌阳县部分中学联考2024-2025学年八年级下学期3月月考数学试题(原卷版+解析版)
- 肺结核病人的心理护理
- 2025年开封文化艺术职业学院单招职业技能测试题库含答案
- 2025年辽宁冶金职业技术学院单招职业适应性测试题库有完整答案
- 2025年安徽扬子职业技术学院单招职业适应性测试题库(各地真题)
- 烟草职业鉴定三级技能考点
- 创新创业项目计划书撰写
- 2024年上海市杨浦区复旦大学附中自主招生数学试卷
- 2025年安徽警官职业学院单招职业适应性测试题库带答案
- 《汽车底盘构造与维修》专业课程标准
- 2025年中国外运股份有限公司招聘笔试参考题库含答案解析
评论
0/150
提交评论