主题:求教一个程序
这里有一段求n的阶乘的程序,但结果不对,不知错误出在哪,请各位高手指教
data segment
n db 4
result dw ?
data ends
stack segment stack
dw 100 dup(?)
stack ends
code segment
assume cs:code;ds:data
start: mov ax,data
mov ds,ax
xor ax,ax
mov al, n
call fac
mov result,dx
mov ah,4ch
int 21h
fac proc
cmp ax,0
jne next
mov dx,1
jmp back
next:push ax
dec ax
call fac
back:pop ax
mul dx
mov ax,dx
ret
fac endp
code ends
end start
data segment
n db 4
result dw ?
data ends
stack segment stack
dw 100 dup(?)
stack ends
code segment
assume cs:code;ds:data
start: mov ax,data
mov ds,ax
xor ax,ax
mov al, n
call fac
mov result,dx
mov ah,4ch
int 21h
fac proc
cmp ax,0
jne next
mov dx,1
jmp back
next:push ax
dec ax
call fac
back:pop ax
mul dx
mov ax,dx
ret
fac endp
code ends
end start