汇编递归求N!

; N!=N*(N-1)*(N-2)*...*2*1(N>=0)
data segment
    N dw 3
    result dw ?
data ends
code segment
    assume cs:code,ds:data
    start:
        mov ax,data
        mov ds,ax
        mov bx,N
        push bx
        call fact
        pop result
        mov ax,4c00h
        int 21h
    fact proc near
        push ax
        push bp
        mov bp,sp
        mov ax,[bp+6]
        cmp ax,0
        jne fact1
        inc ax
        jmp fact2
    fact1:
        dec ax
        push ax
        call fact
        pop ax
        mul word ptr [bp+6]
    fact2:
        mov [bp+6],ax
        pop bp
        pop ax
        ret
    fact endp
code ends
end start
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值