输出n!和n:
DATA1 SEGMENT
F1 DW 0 ;N!
F2 DW 0 ;N
count1 dw 100
count2 dw 10
DATA1 ENDS
STACK1 SEGMENT PARA STACK 'STACK'
TOP DW 64H DUP(0)
STACK1 ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATA1,SS:STACK1
START:
MOV AX,DATA1
MOV DS,AX
MOV AX,STACK1
MOV SS,AX
MOV AX,1
MOV BX,1
MOV CX,9999
FT:
CMP AX,CX
JNB FT1
INC BX
MUL BX
JMP FT
FT1:
IDIV BX
DEC BX
MOV F2,BX
MOV F1,AX
MOV cx,count1
div cl
MOV BX,AX ;保存结果
MOV AH,0 ;只保留商
MOV cx,count2
div cl
mov ch,ah
mov dl,al ;输出千位
MOV AH,02H
add dl,30h
INT 21H
MOV DL,CH
MOV AH,02H ;输出百位
add dl,30h
INT 21H
MOV AL,BH
MOV CX,COUNT2
MOV AH,0
DIV CL
mov ch,ah
mov dl,al ;输出十位
MOV AH,02H
add dl,30h
INT 21H
MOV DL,CH
MOV AH,02H ;输出个位
add dl,30h
INT 21H
MOV DL ,0AH ;回车
MOV AH,02H
INT 21H
MOV DX,F2
MOV AH,02H ;输出N
add dl,30h
INT 21H
mov ah,4ch; 取返回代码
int 21h
CODES ENDS
END START