.model small .stack .data mes1 db 10,13,"Input a valid integer, please : ","$" mes2 db 10,13,"Factorial is : ","$" dix dw 10 acc dw 0 .code main proc mov ax,@data mov ds,ax . mov ah,09 lea dx,mes1 int 21h mov ah,1 int 21h add al,48 mov ah,0 mov bx,ax @1: mov ah,1 int 21h mov ah,0 cmp al,13 je @2 add al,-48 mov cx,9 mov dx,bx @3: add dx,bx loop @3 mov bx,dx add bx, ax jne @1 @2: mov ah,2 mov dl,10 int 21h mov ah,09 lea dx,mes2 int 21h cmp bx,0 jne suit1 mov ah,2 mov dx,bx int 21h suit1: mov cx,bx dec cx mov ax,1 calc: mul bx dec bx loop calc @4: cmp ax,0 je @5 mov dx,0 div dix push dx inc acc jmp @4 @5: mov cx,acc @6: pop bx add bl,48 mov ah,0 ;add bh,48 mov ah,2 mov dx,bx int 21h loop @6 mov ax,4c00h int 21h main endp end main