请高手帮忙做个用汇编语言求n!的源程序

来源:百度知道 编辑:UC知道 时间:2024/05/10 07:46:59
只要汇编语言就行,没其他要求,简单点
请问能帮忙做个注释吗?
我们是初学者,不是怎么看得懂
谢谢

datarea segment
n dw 3
result dw ?
datarea ends
stack_seg segment
dw 128 dup(0)
tos label word
stack_seg ends
prognam segment
main proc far
assume cs:prognam,ds:datarea,ss:stack_seg
start:
mov ax,stack_seg
mov ss,ax
mov sp,offset tos
push ds
sub ax,ax
push ax
mov ax,datarea
mov ds,ax
mov bx,n
push bx
call fact
pop result

mov dx, result ;result 已经放到DX中了
mov ah,2
int 21h

ret
main endp
fact proc near
push ax
push bp
mov bp,sp
mov ax,[bp+6]
cmp ax,0
jne fact1
inc ax
jmp exit
fact1:
dec ax
push ax
call fact
pop ax
mul word ptr[bp+6]
exit:
mov [bp+6],ax
pop bp
pop ax
ret
fact endp
prognam ends
end start