关键词不能为空

当前您在: 主页 > 高中公式大全 >

动量公式完全弹性碰撞计算N的阶乘

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2020-10-25 14:30
tags:n的阶乘公式

现在距离2020高考还有多少天-什么水果

2020年10月25日发(作者:曲仲湘)





北 华 航 天 工 业 学 院
课程设计报告(论文)





设计课题: 计算N的阶乘
专业班级:
学生姓名:
指导教师:
设计时间: 2010年12月16日

1


北华航天工业学院电子工程系
微机原理与接口技术 课程设计任务书
姓 名:
指导教师:
专 业: 电子信息工程
职 称:
班级:
完成时间: 20101216
课程设计题目:计算N的阶乘
已知技术参数和设计要求:
1.编写计算N!的程序。数值N由键盘输入,结果在屏幕上输出。
2..通过编制一个阶乘计算程序,了解怎样在汇编语言一级上实现高级语言
中的数学函数。
3.N的范围为0-65535,即不超过一个16位寄存器的容量。


所需仪器设备:计算机
成果验收形式:计算机演示,设计报告
参考文献:微机原理与接口技术
8086实验指导书
12月13号编译程序
时间
安排
14号上机操作
15号验收
指导教师: 刘金梅 教研室主任:
2010年 12 月 18 日





2



内 容 摘 要


本次课程设计编写计算N!的程序。数值N由键盘输入,结果在 屏幕上输
出,通过编制一个阶乘计算程序,了解怎样在汇编语言一级上实现高级语言中的
数学函 数。其难点在于随着N的增大,其结果远非寄存器所能容纳。这就必须
把结果放在一个内存缓冲区中。然 而乘法运算只限于两个字相乘,因此要确定好
算法,依次从缓冲区中取数,进行两字相乘,并将DX中的 高 16位积作为产生
的进位。




索引关键词: N的阶乘 汇编语言 内存缓冲区










3

目 录





序言————————————————————5
正文————————————————————5
一、程序算法————————————————-—-5
二、源程序—————————————————-—-6
三、程序运行与调试—————————————-—11
四、N的阶乘程序流动图——————————-—-—11
心得体会——————————————————13
参考文献——————————————————13










4

序言 本文是关于微型计算机原理写文件课程设计。编写程序,将内存区域中用调
试程序(DEBUG)设 置好的一连串数据(以Ctrl+z为结束符)做为一个文件存入
磁盘,文件名为。内存区域的段地址和 偏移地址在程序中输入。
随着计算机的高速发展,微型计算机已经应用到各个领域,微型计算机原理< br>应用技术已经成为电子信息的核心产业。
微型计算机原理是计算机科学与技术、通讯工程、电气工程、机电工程的核
心课程。
通过这次课程设计,是我们更好地理解了课程中所学的理论知识,并把实际
问题转化为理论知识,学会如 何把学到的知识用于解决实际问题,培养我们的动
手能力。

正文

一、 程序算法

阶乘的定义为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,则结果长度要扩展。
5


二、源程序

内容:计算N阶乘 N!
CRLF MACRO 回车,换行
MOV AH, 02H
MOV DL, 0DH
INT 21H


MOV AH, 02H
MOV DL, 0AH
INT 21H
ENDM
DATA SEGMENT
MESS1 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 1
CY DW ?
BUF DW 256 DUP(0)
DATA ENDS
STACK SEGMENT STACK 'STACK'
DW 32 DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME CS: CODE, DS:DATA, ES:DATA, SS:STACK
START: MOV AX, DATA
MOV DS,AX
MOV ES, AX
MOV AH, 09H
6





MOV DX,OFFSET MESS1
INT 21H
CALL GETNUM
显示输入提示信息
;读取键入的N值
;N值送BP MOV BP, DX
CMP BP, 0
JZ EEE
CMP BP, 1
JZ EEE
MOV SI, OFFSET BUF
MOV [SI],DX
XXX: DEC BP
CMP BP,0001H
JZ LLL
XOR BX,BX
MOV WORD PTR CY,0
MOV CX,LEN
TTT: MOV AX, [SI+BX]
MUL BP
ADD AX,CY
JNC JJJ
INC DX
JJJ: MOV [SI+BX],AX
MOV CY,DX
INC BX
INC BX
LOOP TTT
CMP DX, 0000H
JZ BBB
INC WORD PTR LEN

;N=0或N=1则转EEE
;缓冲区首址
缓冲区初始化为值N
;N值减1
若为1则转LLL
;偏移指针清0
;进位单元清0
;当前结果长度送CX
相乘
;加低位进位
;结果无进位转JJJ
有进位将高位单元加1
;结果送缓冲区中
;高位单元送进位单元
;一个字长度
循环
最后1次的进位为0则转BBB
;长度加1
7
MOV [SI+BX],DX 进位送缓冲区中
BBB: JMP XXX
EEE: MOV SI,OFFSET BUF
MOV WORD PTR [SI],1 结果为1
LLL: MOV AH, 09H
MOV DX,OFFSET MESS2
INT 21H
MOV CX,LEN
MOV BX,CX
DEC BX
SHL BX,1
CCC: MOV AX, [SI+BX]
CALL DISP
DEC BX
DEC BX
LOOP CCC
MOV AX,4C00H
INT 21H
DISP1 PROC NEAR
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
RET

;显示表头
;长度
;1个字为两个字节
;显示结果
结束
显示字符(AL)
;显示高位
;显示低位
8



;


DISP1 ENDP
DISPL PROC NEAR
ADD DL, 30H
CMP DL, 3AH
JB DDD
ADD DL, 27H
DDD: MOV AH, 02H
INT 21H
RET
DISPL ENDP
DISP PROC NEAR
PUSH BX
PUSH CX
PUSH DX
PUSH AX
MOV AL, AH
CALL DISP1
POP AX
CALL DISP1
POP DX
POP CX
POP BX
RET
DISP ENDP
GETNUM PROC NEAR
PUSH CX
REGET: XOR DX, DX
GGG: MOV AH, 01H
INT 21H

显示一位(DL=0XH)
;显示4位数(HEX)
;字符匹配程序
9
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, 20H
GETS: MOV CL, 04H
SHL DX,CL
XOR AH, AH
ADD DX ,AX
JMP GGG
KKK: CRLF
MOV AH, 09H
MOV DX,OFFSET ERROR
INT 21H
JMP REGET
PPP: PUSH DX

10




CRLF
POP DX
POP CX
RET
GETNUM ENDP
CODE ENDS
END START
三、程序运行与调试

要求输入n的值,然后再回车!如图(1)所示


图(1)运行过程

要求输入N时,就回车,得到结果

四、N的阶乘程序流图如图(2)所示
11


图(2)
12

心得体会
微机原理与接口技术是一门很有趣的课程,任何一个计算 机系统都是一个复杂的
整体,学习计算机原理是要涉及到整体的每一部分。讨论某一部分原理时又要涉< br>及到其它部分的工作原理。这样一来,不仅不能在短时间内较深入理解计算机的
工作原理,而且也 很难孤立地理解某一部分的工作原理。所以,在循序渐进的课
堂教学过程中,我总是处于“学会了一些新 知识,弄清了一些原来保留的问题,
又出现了一些新问题”的循环中,直到课程结束时,才把保留的问题 基本搞清楚。
学习该门课程知识时,其思维方法也和其它课程不同,该课程偏重于工程思
维, 这次实验并不是很难, 主要的困难来自对程序的理解。功夫不负有心人,
经过努力,最后对实验的原理有了清晰的认识。
总之,这次课程设计对于我们有很大的帮助,通过课程设计,我更加深入
地理解和熟悉了汇编 程序的编写过程和运行过程,感谢老师的悉心指导。

参考文献
1. 《微机原理实验与课程设计指导书》,陆红伟编,中国电力出版社,2006

2. 《8086微型计算机组成、原理及接口》,顾滨,机械工业出版社,2001
3. 《微型计算机原理及应用》,吕淑萍等,哈尔滨工程大学出版社,2004年
4. 《微型计算机技术及应用》,戴梅萼,清华大学出版社,2005







13

电子工程系
微机原理与接口技术
课程设计成绩评定表
专业: 电子工程系 班级: 学号: 姓名

课题名称










1.编写计算N!的程序。数值N由键盘输入,结果在屏幕上输出。
2..通过编制一个阶乘计算程序,了解怎样在汇编语言一级上实现高
级语言中的数学函数。
3.N的范围为0-65535,即不超过一个16位寄存器的容量。

N的阶乘



















建议成绩: 指导教师:









评定成绩: 课程负责人:










年 月 日
14

高三情侣-艺校女孩的艰辛路


赞扬老师的句子-答案解析网


网络营销要学什么课程-关于历史人物的故事


毕业后档案在哪里-河南商业高等专科


向量坐标运算公式-纳入


简短的祝福语8个字的-读研究生要几年


南昌有哪些专科学校-贵州省会是哪个城市


黄河科技学院怎么样-中秋节的作文怎么写



本文更新与2020-10-25 14:30,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/425741.html

计算N的阶乘的相关文章

  • 爱心与尊严的高中作文题库

    1.关于爱心和尊严的作文八百字 我们不必怀疑富翁的捐助,毕竟普施爱心,善莫大焉,它是一 种美;我们也不必指责苛求受捐者的冷漠的拒绝,因为人总是有尊 严的,这也是一种美。

    小学作文
  • 爱心与尊严高中作文题库

    1.关于爱心和尊严的作文八百字 我们不必怀疑富翁的捐助,毕竟普施爱心,善莫大焉,它是一 种美;我们也不必指责苛求受捐者的冷漠的拒绝,因为人总是有尊 严的,这也是一种美。

    小学作文
  • 爱心与尊重的作文题库

    1.作文关爱与尊重议论文 如果说没有爱就没有教育的话,那么离开了尊重同样也谈不上教育。 因为每一位孩子都渴望得到他人的尊重,尤其是教师的尊重。可是在现实生活中,不时会有

    小学作文
  • 爱心责任100字作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文
  • 爱心责任心的作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文
  • 爱心责任作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文