微机原理课程设计报告计算N的阶乘
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
科技学院
课程设计报告
( 2012—2013 年度第一学期)
课程:微机原理及应用
题目:计算N的阶乘
院系:动力工程系
班级:
学号:
学生姓名:
指导教师:
设计周数:一周
成绩:
日期:2013年1 月11 日
《微机原理及应用》课程设计
任务书
一、目的与要求
1.通过对微机系统分析和具体设计,使学生加深对所学课程的理解。
2.掌握汇编语言程序设计的基本方法和典型接口电路的基本设计方法。
3.培养学生分析问题、解决问题的能力。
4.培养学生对微型计算机应用系统的基本设计能力。
5.提高学生的实践动手能力和创新能力。
二、主要内容
设计题目:计算N的阶乘。数值N由键盘输入,N的范围为0~65535,结果在屏幕上显示。
1.针对所选择的设计题目进行硬件设计,合理选用所需元器件,绘制系统结构框图、硬件接线图,并在实验系统上完成电路的连接和调试。
2.根据所选题目的要求对微机系统进行程序设计,绘制程序总体流程图并编写源程序上机调试。
3.写出课程设计报告,对整个设计过程进行归纳和综合,对设计中所存在的问题和不足进行分析和总结,提出解决的方法、措施、建议和对这次设计实践的认识和收获。
三、进度计划
四、设计成果要求
1.系统硬件设计合理,软件编程达到设计要求。
2.系统硬件结构图和软件流程图绘制清楚规范。
3.设计报告完整规范。
五、考核方式
根据设计任务的完成情况、课程设计报告撰写情况及演示答辩情况采用五级记分制评定成绩。
学生姓名:
指导教师:
一、课程设计目的与要求
1.通过对微机系统分析和具体设计,使学生加深对所学课程的理解。
2.掌握汇编语言程序设计的基本方法和典型接口电路的基本设计方法。
3.培养学生分析问题、解决问题的能力。
4.培养学生对微型计算机应用系统的基本设计能力。
5.提高学生的实践动手能力和创新能力
二、课程设计正文
1.程序正文
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:’,0DH,0AH, ‘$’
ERROR DB ‘INPUT ERROR!’,0DH,0AH, ‘$’
LEN DW 1
CYY DW ?
BUF DW 256 DUP (0)
DATA ENDS
STACK SEGMENT
STA DW 32 DUP (?)
TOP DW ?
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK
START: MOV AX,DATA
MOV DS,AX
MOV ES,AX
MOV SP,TOP
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 [CYY],0 ;进位单元请0
MOV CX,[LEN] ;当前结果长度送CX
TTT: MOV AX,[SI+BX]
MUL BP ;相乘
ADD AX,[CYY] ;加低位进位
JNC JJJ ;结果元进位转JJJ
INC DX ;有进位将高位单元加1
JJJ: MOV [SI+BX],AX ;结果送缓冲区中
MOV [CYY],DX ;高位送进位单元
INC BX
INC BX ;1个字长度
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个字为2个字节CCC: MOV AX,[SI+BX]
CALL DISP
DEC BX
DEC BX ;显示结果
LOOP CCC
MOV AX,4C00H ;结束
INT 21H
DISPP 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
DISPP ENDP
DISPL PROC NEAR
ADD DL,30H
CMP DL,3AH
JB DDD
ADD DL,27H
DDD: MOV AH,02H
INT 21H
RET