北 华 航 天 工 业 学 院
课程
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
报告
软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载
(论文)
设计课题: 计算N的阶乘
专业班级:
学生姓名:
指导教师:
设计时间: 2010,12,18
北华航天工业学院电子
工程
路基工程安全技术交底工程项目施工成本控制工程量增项单年度零星工程技术标正投影法基本原理
系
计算N的阶乘 课程设计任务
书
关于书的成语关于读书的排比句社区图书漂流公约怎么写关于读书的小报汉书pdf
姓 名
专 业
通信工程
班 级
指导教师
职 称
讲师
学 号
课程设计题目:计算N的阶乘
已知技术参数和设计要求:
编写计算N!的程序。数值N由键盘输入,结果在屏幕上输出。
N的范围为0-65535,即不超过一个16位寄存器的容量。
所需仪器设备:
计算机
成果验收形式:程序及调试
参考文献:
《微机原理实验与课程设计指导书》,陆红伟编,中国电力出版社,2006年
《8086微型计算机组成、原理及接口》,顾滨,机械工业出版社,2001
《微型计算机原理及应用》,吕淑萍等,哈尔滨工程大学出版社,2004年
《微型计算机技术及应用》,戴梅萼,清华大学出版社,2005
时间安排
周一至周三写程序,周四验收
指导教师: 教研室主任:
年 月 日
目录
摘要———————————————————————1
一、概述——————————————————————- 2
二、方案设计与论证————————--——————-———2
1、设计算法与原理
2、源程序代码
三、运行结果——----———————— ————-————8
1.非数字符时报错
2.正常运行
四、程序流动图————-------—— ————-—------—-9
五、设计总结———————————————————11
参考文献———————----———----—————-—12
摘 要
本次设计以8086CPU为主板进行,主要计算机系统概述,计算机中数据的
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
示,运算方法与运算器,控制器,Intel80X86微处理器,存储系统,80X86的寻址方式与指令系统,输入输出系统及接口,中断系统及DMA系统,串、并行通信及接口电路
说明书在内容组织上既注重全面性和实用性,又强调系统性与新颖性。由浅入深、全面系统地介绍了微型计算机的组成、工作原理、接口电路和典型应用等,使读者建立微型计算机系统的整体概念,掌握微型计算机系统软硬件开发的初步方法,了解简单计算机应用系统的工作原理和设计方法。
一、概述
本文是关于微型计算机原理写文件课程设计。编写程序,将内存区域中用调试程序(DEBUG)设置好的一连串数据(以Ctrl+z为结束符)做为一个文件存入磁盘,文件名为DATA.ASM。内存区域的段地址和偏移地址在程序中输入
随着计算机的高速发展,微型计算机已经应用到各个领域,微型计算机原理应用技术已经成为电子信息的核心产业。
微型计算机原理是计算机科学与技术、通讯工程、电气工程、机电工程的核心课程。
通过这次课程设计,是我们更好地理解了课程中所学的理论知识,并把实际问题转化为理论知识,学会如何把学到的知识用于解决实际问题,培养我们的动手能力。
二、方案设计与论证
1.设计算法与原理
阶乘的定义为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,则结果长度要扩展。
2.源程序代码
内容:计算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
STACKS SEGMENT STACK 'STACK'
DW 32 DUP(?)
STACKS ENDS
CODE SEGMENT
ASSUME CS: CODE, DS:DATA, ES:DATA, SS:STACKS
START: 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 ;缓冲区初始化为值N
XXX: DEC BP ;N值减1
CMP BP,0001H
JZ LLL ;若为1则转LLL
XOR BX,BX ;偏移指针清0
MOV WORD PTR CY,0 ;进位单元清0
MOV CX,LEN ;当前结果长度送CX
TTT: MOV AX, [SI+BX]
MUL BP ;相乘
ADD AX,CY ;加低位进位
JNC JJJ ;结果无进位转JJJ
INC DX ;有进位将高位单元加1
JJJ: 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 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 ;1个字为两个字节
CCC: MOV AX, [SI+BX]
CALL DISP
DEC BX
DEC BX ;显示结果
LOOP CCC
MOV AX,4C00H ;结束
INT 21H
DISP1 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 ;显示低位
RET
DISP1 ENDP
DISPL PROC NEAR ;显示一位(DL=0XH)
ADD DL, 30H
CMP DL, 3AH
JB DDD
ADD DL, 27H
DDD: MOV AH, 02H
INT 21H
RET
DISPL ENDP
DISP 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
RET
DISP ENDP
GETNUM PROC NEAR ;字符匹配程序
PUSH CX
REGET: XOR DX, DX
GGG: 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, 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
CRLF
POP DX
POP CX
RET
GETNUM ENDP
CODE ENDS
END START
三、运行结果
1.非数字符时报错
2.正常运行
四、N的阶乘程流动图
五、 设计总结
微机原理与接口技术是一门很有趣的课程,任何一个计算机系统都是一个复杂的整体,学习计算机原理是要涉及到整体的每一部分。讨论某一部分原理时又要涉及到其它部分的工作原理。这样一来,不仅不能在短时间内较深入理解计算机的工作原理,而且也很难孤立地理解某一部分的工作原理。所以,在循序渐进的课堂教学过程中,我总是处于“学会了一些新知识,弄清了一些原来保留的问题,又出现了一些新问题”的循环中,直到课程结束时,才把保留的问题基本搞清楚。
参考文献
《微机原理实验与课程设计指导书》,陆红伟编,中国电力出版社,2006年
《8086微型计算机组成、原理及接口》,顾滨,机械工业出版社,2001
《微型计算机原理及应用》,吕淑萍等,哈尔滨工程大学出版社,2004年
《微型计算机技术及应用》,戴梅萼,清华大学出版社,2005
电子工程系 微机 课程设计成绩评定表
专业: 通信工程 班级: 学号: 姓名:
课题名称
计算N的阶乘
设计任务与要求
编写计算N!的程序。数值N由键盘输入,结果在屏幕上输出。
N的范围为0-65535,即不超过一个16位寄存器的容量。
指导教师评语
建议成绩: 指导教师:
课程小组评定
评定成绩: 课程负责人:
2010 年 12 月 18 日