




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
北 华 航 天 工 业 学 院课程设计报告(论文)设计课题: 计算N的阶乘 专业班级: 学生姓名: 指导教师: 设计时间: 2010年12月16日北华航天工业学院电子工程系 微机原理与接口技术 课程设计任务书姓 名:专 业:电子信息工程班级:指导教师:职 称:完成时间:2010/12/16课程设计题目:计算N的阶乘已知技术参数和设计要求: 1编写计算N!的程序。数值N由键盘输入,结果在屏幕上输出。 2.通过编制一个阶乘计算程序,了解怎样在汇编语言一级上实现高级语言中的数学函数。 3N的范围为065535,即不超过一个16位寄存器的容量。所需仪器设备:计算机成果验收形式:计算机演示,设计报告参考文献:微机原理与接口技术 8086实验指导书时间安排12月13号编译程序14号上机操作15号验收指导教师: 刘金梅 教研室主任: 2010年 12 月 18 日内 容 摘 要本次课程设计编写计算N!的程序。数值N由键盘输入,结果在屏幕上输出,通过编制一个阶乘计算程序,了解怎样在汇编语言一级上实现高级语言中的数学函数。其难点在于随着N的增大,其结果远非寄存器所能容纳。这就必须把结果放在一个内存缓冲区中。然而乘法运算只限于两个字相乘,因此要确定好算法,依次从缓冲区中取数,进行两字相乘,并将DX中的高 16位积作为产生的进位。索引关键词: N的阶乘 汇编语言 内存缓冲区 目 录序言5正文5一、程序算法-5二、源程序-6三、程序运行与调试-11四、N的阶乘程序流动图-11心得体会13参考文献13序言本文是关于微型计算机原理写文件课程设计。编写程序,将内存区域中用调试程序(DEBUG)设置好的一连串数据(以Ctrl+z为结束符)做为一个文件存入磁盘,文件名为DATA.ASM。内存区域的段地址和偏移地址在程序中输入。随着计算机的高速发展,微型计算机已经应用到各个领域,微型计算机原理应用技术已经成为电子信息的核心产业。微型计算机原理是计算机科学与技术、通讯工程、电气工程、机电工程的核心课程。通过这次课程设计,是我们更好地理解了课程中所学的理论知识,并把实际问题转化为理论知识,学会如何把学到的知识用于解决实际问题,培养我们的动手能力。正文一、 程序算法阶乘的定义为N!=N(N-1)(N-2)2,从左至右依次计算,结果保存在缓冲区BUF中。缓冲区BUF按结果由高到低依次排列。程序首先将BP初始化为N,N不等于0或1则将N送入BUF缓冲区最低字节单元中。然后使BP为N-1,以后BP依次减1,直到变化为1为止。每次让BP与BUF中的字节单元按由低到高的次序相乘。低位结果AX仍保存在相应的BUF字节单元中,高位结果DX则送到进位字单元CY中,作为高字相乘时从低字来的进位,初始化CY为0.计算结果的长度随着乘积运算而不断增长。由字单元LEN指示。LEN单元初始化为1。当最高字单元与BP相乘时。若DX不为0,则结果长度要扩展。二、源程序内容:计算N阶乘 N!CRLF MACRO;回车,换行 MOV AH, 02H MOV DL, 0DH INT 21H MOV AH, 02H MOV DL, 0AH INT 21H ENDMDATA SEGMENTMESS1 DB INPUT THE NUMBER ACCORDING TO HEXNUM!,0DH,0AH,$MESS2 DB THE RESULT IS: $ERROR DB INPUT ERROR! INPUT ONCE MORE!,0DH ,0AH,$LEN DW 1CY DW ?BUF DW 256 DUP(0)DATA ENDSSTACK SEGMENT STACK STACK DW 32 DUP(?)STACKENDSCODE SEGMENTASSUME CS: CODE, DS:DATA, ES:DATA, SS:STACKSTART:MOV AX, DATA MOV DS,AX MOV ES, AX MOV AH, 09H MOV DX,OFFSET MESS1 INT 21H ;显示输入提示信息 CALL GETNUM ;读取键入的N值 MOV BP, DX ;N值送BP CMP BP, 0 JZ EEE CMP BP, 1 JZ EEE ;N=0或N=1则转EEE MOV SI, OFFSET BUF ;缓冲区首址 MOV SI,DX ;缓冲区初始化为值NXXX: DEC BP ;N值减1 CMP BP,0001H JZ LLL ;若为1则转LLL XOR BX,BX ;偏移指针清0 MOV WORD PTR CY,0 ;进位单元清0 MOV CX,LEN ;当前结果长度送CXTTT: MOV AX, SI+BX MUL BP ;相乘 ADD AX,CY ;加低位进位 JNC JJJ ;结果无进位转JJJ INC DX ;有进位将高位单元加1JJJ: MOV SI+BX,AX ;结果送缓冲区中 MOV CY,DX ;高位单元送进位单元 INC BX INC BX ;一个字长度 LOOP TTT ;循环 CMP DX, 0000H JZ BBB ;最后1次的进位为0则转BBB INC WORD PTR LEN ;长度加1 MOV SI+BX,DX ;进位送缓冲区中BBB: JMP XXXEEE: MOV SI,OFFSET BUF MOV WORD PTR SI,1 ;结果为1LLL: MOV AH, 09H MOV DX,OFFSET MESS2 INT 21H ;显示表头 MOV CX,LEN MOV BX,CX ;长度 DEC BX SHL BX,1 ;1个字为两个字节CCC: MOV AX, SI+BX CALL DISP DEC BX DEC BX ;显示结果 LOOP CCC MOV AX,4C00H ;结束 INT 21HDISP1 PROC NEAR ;显示字符(AL) MOV BL, AL MOV DL, BL MOV CL, 04 ROL DL, CL AND DL, 0FH CALL DISPL ;显示高位 MOV DL, BL AND DL, 0FH CALL DISPL ;显示低位 RETDISP1 ENDPDISPL PROC NEAR ;显示一位(DL0XH) ADD DL, 30H CMP DL, 3AH JB DDD ADD DL, 27HDDD: MOV AH, 02H INT 21H RETDISPL ENDPDISP PROC NEAR ;显示4位数(HEX) PUSH BX PUSH CX PUSH DX PUSH AX MOV AL, AH CALL DISP1 POP AX CALL DISP1 POP DX POP CX POP BX RETDISP ENDPGETNUMPROC NEAR ;字符匹配程序 PUSH CXREGET:XOR DX, DXGGG: MOV AH, 01H INT 21H CMP AL, 0DH JZ PPP CMP AL, 20H JZ PPP SUB AL, 30H JB KKK CMP AL, 0AH JB GETS CMP AL,11H JB KKK SUB AL, 07H CMP AL, 0FH JBE GETS CMP AL, 2AH JB KKK CMP AL, 2FH JA KKK SUB AL, 20HGETS: MOV CL, 04H SHL DX,CL XOR AH, AH ADD DX ,AX JMP GGGKKK: CRLF MOV AH, 09H MOV DX,OFFSET ERROR INT 21H JMP REGETPPP: PUSH DX CRLF POP DX POP CX RETGETNUMENDP CODE ENDS END START三、程序运行与调试 要求输入n的值,然后再回车!如图(1)所示 图(1)运行过程要求输入时,就回车,得到结果四、N的阶乘程序流图如图(2)所示图(2) 心得体会微机原理与接口技术是一门很有趣的课程,任何一个计算机系统都是一个复杂的整体,学习计算机原理是要涉及到整体的每一部分。讨论某一部分原理时又要涉及到其它部分的工作原理。这样一来,不仅不能在短时间内较深入理解计算机的工作原理,而且也很难孤立地理解某一部分的工作原理。所以,在循序渐进的课堂教学过程中,我总是处于“学会了一些新知识,弄清了一些原来保留的问题,又出现了一些新问题”的循环中,直到课程结束时,才把保留的问题基本搞清楚。 学习该门课程知识时,其思维方法也和其它课程不同,该课程偏重于工程思维, 这次实验并不是很难,主要的困难来自对程序的理解。功夫不负有心人,经过努力,最后对实验的原理有了清晰的认识。 总之,这次课程设计对于我们有很大的帮助,通过课程设计,我更加深入地理解和熟悉了汇编程序的编写过程和运行过程,感谢老师的悉心指导。参考文献1. 微机原理实验与课程设计指导书,陆红伟编,中国电力出版社,2006年2. 8086微型计算机组成、原理及接口,顾滨,机械工业出版社,20013. 微型计算机原理及应用,吕淑萍等,哈尔滨工程大学出版社,2004年4. 微型计算机技术及应用,戴梅萼,清华大学出版社,2005 电子工程
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大物潘石课件
- 专题12化学反应原理综合-五年(2017-2021)高考化学真题分项汇编(原卷版)
- 专题12立体几何初步
- 湖南省长沙市麓山国际实验学校2025-2026学年高三上学期入学考试数学试卷-1
- Unit5TheweatherandusPartBLetstalkletslearn(教案)-人教PEP版英语四年级上册
- 2025年企业信息化管理考试试卷及答案
- Module7Englishforyouandme.词汇笔记-外研版(2012)九年级英语下册
- 甘肃省镇原县镇原中学2016学年高二下学期期中检测数学(理)试题
- 《反比例关系》教学课件
- 宠物食品健康数据收集与分析创新创业项目商业计划书
- 部编人教版五年级上册语文 第三单元单元分析
- 普通心理学第六版PPT完整全套教学课件
- 护理综述论文的撰写
- 医院院内急会诊制度
- TSDPIA 05-2022 宠物猫砂通用技术规范
- 动力管道培训
- GB/T 11446.9-2013电子级水中微粒的仪器测试方法
- 热力学发展史概述讲课稿
- 教学配套课件:二维动态图形设计基础
- 预防电信诈骗网络诈骗
- 督脉灸参考课件
评论
0/150
提交评论