📄 递归子程序.txt
字号:
当子程序直接或间接地嵌套调用自身时称为递归调用,含有递归调用的子程序称为递归子程序.
例:求阶乘
.model small
.stack 256
.data
N dw 3
result dw ?
.code
.startup
mov bx,N
push bx ;入口参数:N
call fact ;调用递归子程序
pop result ;出口参数:N!
.exit 0
;计算N!的近过程
;入口参数:压入 N
;出口参数:弹出 N!
fact proc
push ax
push bp
mov bp,sp
mov ax,[bp+6] ;取入口参数 N
cmp ax,0
jne fact1 ;N>0,N!=N×(N-1)!
inc ax ;N=0,N!=1
jmp fact2
fact1: dec ax ;N-1
push ax
call fact ;调用递归子程序求(N-1)!
pop ax
mul word ptr [bp+6] ;求 N×(N-1)!
fact2: mov [bp+6],ax ;存入出口参数 N!
pop bp
pop ax
ret
fact endp
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -