汇编语言 递归子程序实现阶乘
来源:互联网 发布:软件界面图标 编辑:程序博客网 时间:2024/06/06 09:02
最近在弄一门课程(汇编语言)的复习,觉得这个对于回过头来理解以往学习的高级语言还是很有帮助的。
【汇编语言例题】阶乘函数,对于任一个大于等于0的正整数N,其函数值定义为:
FACT(N)=1(当N = 0时) FACT(N)=N*FACT(N-1) (当N> 0时)其算法为:
(1)测试N=0吗?是,则令FACT(N)=1,返回;
(2)保存N,并令N=N-1,调用自身求得FACT(N-1);
(3)顺序取出保存的N值(后保存的先取出);
(4)计算FACT(N)=N*FACT(N-1),并返回。
请编写一个计算N的阶乘的递归子程序,并在主程序中调用该子程序计算6的阶乘。N值存放在BX寄存器中。(N=6)
SSEG SEGMENT
SKTOP DB 20H DUP (0)
SSEG ENDSCSEG SEGMENT
ASSUME CS:CSEGFACT PROC NEAR
AND BX,BX
JZ FACT1
PUSH BX
DEC BX
CALL FACT
POP BX
MUL BX
RET
FACT1: MOV AX, 1
RET
FACT ENDP
MAIN: MOV AX, SSEG
MOV DS, AX
MOV SP, SIZE SKTOP
MOV BX, 6
CALL FACT
CSEG ENDSEND MAIN
【附:一文一图】
0 0
- 汇编语言 递归子程序实现阶乘
- 汇编语言实现递归阶乘算法代码分析(8)
- 使用递归实现阶乘
- 递归实现阶乘计算器
- 递归实现阶乘计算器
- N阶乘递归实现
- 递归算法实现阶乘
- 递归实现阶乘
- 阶乘python递归实现
- 递归实现阶乘
- 汇编语言-子程序调用
- 拓展:汇编语言的子程序
- 汇编语言--如何调用子程序
- 汇编语言showStr测试子程序
- 汇编语言学习系列 递归实现
- 递归算法实现阶乘计算
- 递归实现n的阶乘
- 递归实现(汉诺塔+阶乘)
- XML 学习小记
- FFT
- 线程池的原理 精简了一下便于大家理解
- 序列化和反序列化
- 应用程序编译安装的过程
- 汇编语言 递归子程序实现阶乘
- 指针和数组的理解
- Mapreduce实例---共同好友
- latex 算法,算法包 algorithm
- 搜索引擎之齐普夫法则
- 密码对验证
- 黑马——linux学习笔记(一)
- 二分查找
- C++输出系统盘符