微机原理课程设计报告计算N的阶乘

  • 格式:doc
  • 大小:2.40 MB
  • 文档页数:10

下载文档原格式

  / 10
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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