.model small
.stack 100h
.data
n dw 120
k dw 1
result dw 0
flag db 0
.code
start:
mov ax, @data
mov ds, ax
m1:
mov ax, n
cmp ax, 1
je factorial
mov dx, 0
mov ax, n
div k
cmp dx, 0
je good
mov flag, 0
jmp finish
good:
mov n, ax
mov ax, k
add ax, 1
mov k, ax
jmp m1
factorial:
mov flag, 1
mov ax, k
sub ax, 1
mov result, ax
finish:
mov ax, 4C00h
int 21h
end start