下载此文档

递归程序设计 求n阶乘.doc


文档分类:IT计算机 | 页数:约7页 举报非法文档有奖
1/7
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/7 下载此文档
文档列表 文档介绍
实验名称
递归程序设计求N阶乘
实验内容和要求
设计一个汇编程序完成y=n!的计算。
要求:(1)能够根据用户输入的n值计算其阶乘,结果以十进制数显示;
(2)基于递归程序结构,模块划分合理,具有清晰的入口和出口。
实验目的
感受和学习递归程序的设计方法、技巧,完成递归程序设计
学会运用堆栈传递参数的方法和技巧
进一步感受和学习汇编语言程序设计的方法、技巧和调试过程
实验日期、时间和地点
时间:2010年11月22日
地点:微机高级实验室
实验环境(说明实验用的软硬件环境及调试软件)
使用masm for windows
实验步骤(只写主要操作步骤,要简明扼要,还应该画出程序流程图或实验电路的具体连接图)
实验结果(经调试通过的源程序的所有代码,应包含必要的说明文字)
DATAS SEGMENT
OPE DW 0,0,0,0
RESULT DB 16 DUP(0),'H',0DH,0AH,0AH,'$'
NUM DB 3,0,3 DUP(0)
MESS1 DB 'Please input N(key Enter to quit):',0DH,0AH,'$'
ERR_MESS DB 'Error number,try again!',0DH,0AH,0AH,'$'
FUNC DB 0,0,'!','=','$'
DATAS ENDS
STACKS SEGMENT STACK
DW 1000 DUP(?)
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
DS_STR MACRO BUF ;显示字符串的宏
PUSH DX
PUSH AX
LEA DX,BUF
MOV AH,09H
INT 21H
POP AX
POP DX
ENDM
;——————————————————————————————————————
SR_STR MACRO BUF;输入字符串的宏
PUSH DX
PUSH AX
LEA DX,BUF
MOV AH,0AH
INT 21H
POP AX
POP DX
ENDM
;——————————————————————————————————————
START:
MOV AX,DATAS
MOV DS,AX
MOV ES,AX
LOP1:
MOV CX,16;对RESULT清零
LEA DI,RESULT
MOV AL,0
REP STOSB

MOV CX,4;对OPE清零
LEA DI,OPE
MOV AX,0
REP STOSW

DS_STR MESS1;显示提示信息

SR_STR NUM;输入N

MOV DL,0AH;输出换行
MOV AH,2H
INT 21H
CMP [NUM+1],0;直接回车则退出
JZ OVER
CMP [NUM+1],1
JNZ LABEL_2
CMP [NUM+2],'1';输入一位数,是1~9,则继续,否则输出错误信息,并跳转到开始
JB ERR_NUM
C

递归程序设计 求n阶乘 来自淘豆网m.daumloan.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数7
  • 收藏数0 收藏
  • 顶次数0
  • 上传人文库旗舰店
  • 文件大小69 KB
  • 时间2018-09-13