ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:151.11KB ,
资源ID:9910573      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9910573.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(计算N的阶乘微机课设.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

计算N的阶乘微机课设.docx

1、计算N的阶乘微机课设北 华 航 天 工 业 学 院课程设计报告(论文)设计课题: 计算N的阶乘 专业班级: 学生姓名: 指导教师: 设计时间: 2010.12.17 北华航天工业学院电子工程系 微机原理 课程设计任务书姓 名:专 业:电子信息工程班 级:指导教师:职 称:讲师课程设计题目:计算N的阶乘已知技术参数和设计要求:1N的范围为065535,即不超过一个16位寄存器的容量。2数值N由键盘输入,结果在屏幕上输出。所需仪器设备:计算机、masm软件成果验收形式:运行结果显示,答辩,设计报告参考文献:微机原理与接口技术8086实验指导书时间安排12月14日:查找资料12月15日:编写程序12

2、月16日:上机调试12月17日:验收答辩指导教师: 教研室主任: 2010年12 月 17 日注:本表下发学生一份,指导教师一份,栏目不够时请另附页。课程设计任务书装订于设计计算说明书(或论文)封面之后,目录页之前。内 容 摘 要本次设计以8086CPU为主板进行,主要计算机系统概述,计算机中数据的表示,运算方法与运算器,控制器,Intel80X86微处理器,存储系统,80X86的寻址方式与指令系统及中断系统。说明说在内容组织上既注重全面性和实用性,又强调系统与新颖性。由浅入深,全面系统地介绍了微型计算机的组成、工作原理、接口电路和典型应用等,使读者监理微型计算机系统的整体念,掌握微型计算机系

3、统软硬件开发的初步方法,了解简单计算机应用系统的工作原理和设计方法。本文是关于微型计算机原理写文件课程设计。编写程序,将内存区域中用调试程序(DEBUG)设置好的一连串数据做为一个文件存入磁盘,文件名为N.ASM。内存区域的段地址和偏移地址在程序中输入随着计算机的高速发展,微型计算机已经应用到各个领域,微型计算机原理应用技术已经成为电子信息的核心产业。微型计算机原理是计算机科学与技术、通讯工程、电气工程、机电工程的核心课程。通过这次课程设计,是我们更好地理解了课程中所学的理论知识,并把实际问题转化为理论知识,学会如何把学到的知识用于解决实际问题,培养我们的动手能力。索引关键词:键盘输入 、 屏

4、幕输出 、 不超过一个16位寄存器的容量一 概 述 4二 设计内容4三 设计目的4 四 设计要求4五 设计思路41编制阶乘程序的难点42算法4六 源程序5七 运行过程101源文件的建立和汇编102目标文件的链接113执行文件的调试11八 N的阶乘流程图12九 实验体会13十 参考文献13 一、概述 本文是关于微型计算机原理写文件课程设计。编写程序,将内存区域中用调试程序(DEBUG)设置好的一连串数据做为一个文件存入磁盘,文件名为N.ASM。内存区域的段地址和偏移地址在程序中输入随着计算机的高速发展,微型计算机已经应用到各个领域,微型计算机原理应用技术已经成为电子信息的核心产业。微型计算机原理

5、是计算机科学与技术、通讯工程、电气工程、机电工程的核心课程。通过这次课程设计,是我们更好地理解了课程中所学的理论知识,并把实际问题转化为理论知识,学会如何把学到的知识用于解决实际问题,培养我们的动手能力。二、设计内容编写计算N!的程序。数值N由键盘输入,结果在屏幕上输出。三、设计目的通过编制一个阶乘计算程序,了解怎样在汇编语言一级上实现高级语言中的数学函数。四、设计要求N的范围为065535,即不超过一个16位寄存器的容量。五、设计思路 1编制阶乘程序的难点 本课程设计的难点在于随着N的增大,其结果远非寄存器所能容纳。这就必须把结果放在一个内存缓冲区中。然而乘法运算只限于两个字相乘,因此要确定

6、好算法,依次从缓冲区中取数,进行两字相乘,并将DX中的高 16位积作为产生的进位。 2算法 阶乘的定义为N!N(Nl)(N2) 2l,从左往右依次计算,结果保存在缓冲区BUF中。缓冲区BUF按结果由低到高依次排列。程序首先将BP初始化为N,N不等干0或1则将N送入BUF缓冲区最低字单元中。然后使BP为Nl,以后BP依次减1,直至变化到1为止。每次让BP与BUF中的字单元按由低到高的次序相乘。低位结果AX仍保存在相应的BUF字单元中。高位结果DX则送到进位字单元CY中,作为高字相乘时从低字来的进位,初始化CY为0。计算结果的长度随着乘积运算而不断增长,由字单元LEN指示,LEN单元初始化为1。当

7、最高字单元与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 DU

8、P(0)DATA ENDSSTACK SEGMENT STACK STACK DW 32 DUP(?)STACK ENDSCODE 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

9、, 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 ;

10、一个字长度 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 B

11、X ;显示结果 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 EN

12、DPDISP 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 ENDPGETNUM PROC 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 K

13、KK 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 RETGETNUM ENDP CODE ENDS END START七、运行过程1源文件的建立和汇编2.目标文件的链接3执行文件的调试

14、八、 N的阶乘流程图九、实验体会任何一个计算机系统都是一个复杂的整体,学习计算机原理是要涉及到整体的每一部分。讨论某一部分原理时又要涉及到其它部分的工作原理。这样一来,不仅不能在短时间内较深入理解计算机的工作原理,而且也很难孤立地理解某一部分的工作原理。所以,在循序渐进的课堂教学过程中,我总是处于“学会了一些新知识,弄清了一些原来保留的问题,又出现了一些新问题”的循环中,直到课程结束时,才把保留的问题基本搞清楚。 这次实验并不是很难,主要的困难来自对程序的理解。功夫不负有心人,经过个人的不懈努力,我最后对实验的原理有了清晰的认识。作为一门计算机语言的汇编语言,以前一直都很难理解,平时也喜欢得过

15、且过,所以对程序理解不是很透彻,在最开始的时候也遇到不少问题,的确书看得比较少啊!后来通过查阅资料和书本,总算写出了一点东西,不过通过这次课设让我对程序的的编写和阅读都有了更深的理解。经过这次课程设计,让我对前面的路有了更多的信心,因为在这个过程中,我学到了不少实用的东西,对于一些专业基础课有了更深层次的掌握,并且提高了动手能力和独立解决问题的能力。这是一次理论联系实际的课程设计,既让我掌握了理论知识,又锻炼了动手能力。 十、参考文献微型计算机原理与接口技术,张荣标编,机械工业出版社,2005年8086微型计算机组成、原理及接口,顾滨,机械工业出版社,2001微型计算机原理及应用,吕淑萍等,哈尔滨工程大学出版社,2004年电子工程系 微机原理 课程设计成绩评定表专业: 电子信息工程 班级: 学号: 姓名: 课题名称计算N的阶乘设计任务与要求设计任务:编写计算N!的程序。数值N由键盘输入,结果在屏幕上输出。设计要求:N的范围为065535,即不超过一个16位寄存器的容量。指导教师评语 建议成绩: 指导教师:课程小组评定评定成绩: 课程负责人: 年 月 日

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1