计算N的阶乘2(微型计算机原理与接口技术).doc

上传人:b****2 文档编号:1512174 上传时间:2022-10-22 格式:DOC 页数:15 大小:2.48MB
下载 相关 举报
计算N的阶乘2(微型计算机原理与接口技术).doc_第1页
第1页 / 共15页
计算N的阶乘2(微型计算机原理与接口技术).doc_第2页
第2页 / 共15页
计算N的阶乘2(微型计算机原理与接口技术).doc_第3页
第3页 / 共15页
计算N的阶乘2(微型计算机原理与接口技术).doc_第4页
第4页 / 共15页
计算N的阶乘2(微型计算机原理与接口技术).doc_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

计算N的阶乘2(微型计算机原理与接口技术).doc

《计算N的阶乘2(微型计算机原理与接口技术).doc》由会员分享,可在线阅读,更多相关《计算N的阶乘2(微型计算机原理与接口技术).doc(15页珍藏版)》请在冰豆网上搜索。

计算N的阶乘2(微型计算机原理与接口技术).doc

北华航天工业学院

课程设计报告(论文)

设计课题:

计算N的阶乘

专业班级:

学生姓名:

指导教师:

设计时间:

北华航天工业学院电子工程系

微机原理课程设计任务书

姓名:

专业:

电子信息工程

班级:

指导教师:

职称:

讲师

课程设计题目:

计算N的阶乘

已知技术参数和设计要求:

1.N的范围为0-65535,即不超过一个16位寄存器的容量。

2.数值N由键盘输入,结果在屏幕上输出。

所需仪器设备:

计算机、masm软件

成果验收形式:

运行结果显示,答辩,设计报告

参考文献:

微机原理与接口技术

8086实验指导书

时间

安排

12月18日:

查找资料

12月19日:

编写程序

12月20日:

上机调试

12月21日:

验收答辩

指导教师:

刘金梅

2010年12月21日

内容摘要

本次设计以8086CPU为主板进行,主要计算机系统概述,计算机中数据的表示,运算方法与运算器,控制器,Intel80X86微处理器,存储系统,80X86的寻址方式与指令系统及中断系统。

说明说在内容组织上既注重全面性和实用性,又强调系统与新颖性。

由浅入深,全面系统地介绍了微型计算机的组成、工作原理、接口电路和典型应用等,使读者监理微型计算机系统的整体念,掌握微型计算机系统软硬件开发的初步方法,了解简单计算机应用系统的工作原理和设计方法。

本文是关于微型计算机原理写文件课程设计。

编写程序,将内存区域中用调试程序(DEBUG)设置好的一连串数据做为一个文件存入磁盘,文件名为N.ASM。

内存区域的段地址和偏移地址在程序中输入

随着计算机的高速发展,微型计算机已经应用到各个领域,微型计算机原理应用技术已经成为电子信息的核心产业。

微型计算机原理是计算机科学与技术、通讯工程、电气工程、机电工程的核心课程。

通过这次课程设计,是我们更好地理解了课程中所学的理论知识,并把实际问题转化为理论知识,学会如何把学到的知识用于解决实际问题,培养我们的动手能力。

索引关键词:

键盘输入、屏幕输出、不超过一个16位寄存器的容量

目录

一概述…………………………………………………………………5

二设计内容……………………………………………………………………5

三设计目的……………………………………………………………………5

四设计要求……………………………………………………………………5

五设计思路……………………………………………………………………5

1.编制阶乘程序的难点………………………………………………………5

2.算法…………………………………………………………………………5

六源程序………………………………………………………………………6

七运行过程……………………………………………………………………11

1.源文件的建立和汇编………………………………………………………11

2.目标文件的链接……………………………………………………………12

3.执行文件的调试……………………………………………………………12

八N的阶乘流程图……………………………………………………………12

九实验体会……………………………………………………………………14

十参考文献……………………………………………………………………14

一、概述

本文是关于微型计算机原理写文件课程设计。

编写程序,将内存区域中用调试程序(DEBUG)设置好的一连串数据做为一个文件存入磁盘,文件名为N.ASM。

内存区域的段地址和偏移地址在程序中输入

随着计算机的高速发展,微型计算机已经应用到各个领域,微型计算机原理应用技术已经成为电子信息的核心产业。

微型计算机原理是计算机科学与技术、通讯工程、电气工程、机电工程的核心课程。

通过这次课程设计,是我们更好地理解了课程中所学的理论知识,并把实际问题转化为理论知识,学会如何把学到的知识用于解决实际问题,培养我们的动手能力。

二、设计内容

编写计算N!

的程序。

数值N由键盘输入,结果在屏幕上输出。

三、设计目的

通过编制一个阶乘计算程序,了解怎样在汇编语言一级上实现高级语言中的数学函数。

四、设计要求

N的范围为0-65535,即不超过一个16位寄存器的容量。

五、设计思路

1.编制阶乘程序的难点

本课程设计的难点在于随着N的增大,其结果远非寄存器所能容纳。

这就必须把结果放在一个内存缓冲区中。

然而乘法运算只限于两个字相乘,因此要确定好算法,依次从缓冲区中取数,进行两字相乘,并将DX中的高16位积作为产生的进位。

2.算法

阶乘的定义为N!

=N×(N-l)×(N-2)×…×2×l,从左往右依次计算,结果保存在缓冲区BUF中。

缓冲区BUF按结果由低到高依次排列。

程序首先将BP初始化为N,N不等干0或1则将N送入BUF缓冲区最低字单元中。

然后使BP为N-l,以后BP依次减1,直至变化到1为止。

每次让BP与BUF中的字单元按由低到高的次序相乘。

低位结果AX仍保存在相应的BUF字单元中。

高位结果DX则送到进位字单元CY中,作为高字相乘时从低字来的进位,初始化CY为0。

计算结果的长度随着乘积运算而不断增长,由字单元LEN指示,LEN单元初始化为1。

当最高字单元与BP相乘时,若DX不为0,则结果长度要扩展。

六、源程序

内容:

计算N阶乘N!

CRLF MACRO ;回车,换行

MOVAH,02H

MOVDL,0DH

INT21H

MOVAH,02H

MOVDL,0AH

INT21H

ENDM

DATA SEGMENT

MESS1DB'INPUTTHENUMBERACCORDINGTOHEXNUM!

',0DH,0AH,'$'

MESS2 DB'THERESULTIS:

$'

ERRORDB'INPUTERROR!

INPUTONCEMORE!

',0DH,0AH,'$'

LEN DW1

CY DW?

BUF DW256DUP(0)

DATA ENDS

STACK SEGMENTSTACK'STACK'

DW32DUP(?

STACK ENDS

CODE SEGMENT

ASSUMECS:

CODE,DS:

DATA,ES:

DATA,SS:

STACK

START:

MOVAX,DATA

MOVDS,AX

MOVES,AX

MOVAH,09H

MOVDX,OFFSETMESS1

INT21H ;显示输入提示信息

CALLGETNUM ;读取键入的N值

MOVBP,DX ;N值送BP

CMPBP,0

JZEEE

CMPBP,1

JZEEE ;N=0或N=1则转EEE

MOVSI,OFFSETBUF ;缓冲区首址

MOV[SI],DX ;缓冲区初始化为值N

XXX:

DECBP ;N值减1

CMPBP,0001H

JZLLL ;若为1则转LLL

XORBX,BX ;偏移指针清0

MOVWORDPTRCY,0 ;进位单元清0

MOVCX,LEN ;当前结果长度送CX

TTT:

MOVAX,[SI+BX]

MULBP ;相乘

ADDAX,CY ;加低位进位

JNCJJJ ;结果无进位转JJJ

INCDX ;有进位将高位单元加1

JJJ:

MOV[SI+BX],AX ;结果送缓冲区中

MOVCY,DX ;高位单元送进位单元

INCBX

INCBX ;一个字长度

LOOPTTT ;循环

CMPDX,0000H

JZBBB ;最后1次的进位为0则转BBB

INCWORDPTRLEN ;长度加1

MOV[SI+BX],DX ;进位送缓冲区中

BBB:

JMPXXX

EEE:

MOVSI,OFFSETBUF

MOVWORDPTR[SI],1 ;结果为1

LLL:

MOVAH,09H

MOVDX,OFFSETMESS2

INT21H ;显示表头

MOVCX,LEN

MOVBX,CX ;长度

DECBX

SHLBX,1 ;1个字为两个字节

CCC:

MOVAX,[SI+BX]

CALLDISP

DECBX

DECBX ;显示结果

LOOPCCC

MOVAX,4C00H ;结束

INT21H

DISP1 PROCNEAR ;显示字符(AL)

MOVBL,AL

MOVDL,BL

MOVCL,04

ROLDL,CL

ANDDL,0FH

CALLDISPL ;显示高位

MOVDL,BL

ANDDL,0FH

CALLDISPL ;显示低位

RET

DISP1 ENDP

DISPL PROCNEAR ;显示一位(DL=0XH)

AD

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 实习总结

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

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