📄 求阶乘.txt
字号:
;求N!
STACK SEGMENT STACK
DW 128 DUP(0)
TOP LABEL WORD
STACK ENDS
DATA SEGMENT
RESULT DW 0
N DW 5
OUTPU DB 'N!='
BUF DB 5 DUP(?), 0DH,0AH, '$'
CONT DW 10000,1000,100,10,1
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
START: MOV AX,DATA
MOV DS,AX
MOV AX,STACK
MOV SS,AX
MOV SP,OFFSET TOP
LEA AX,RESULT
PUSH AX
MOV AX,N
PUSH AX
CALL FACT
CALL C2T10
LEA DX,OUTPU
MOV AH,9
INT 21H
MOV AH,1
INT 21H
MOV AH,4CH
INT 21H
FACT PROC
PUSH BP
MOV BP,SP
MOV BX,[BP+6]
MOV AX,[BP+4]
CMP AX,0
JZ DONE
PUSH BX
DEC AX
PUSH AX
CALL FACT
MOV AX,[BP-2]
MUL WORD PTR [BP+4]
JMP RETU
DONE: MOV AX,1
RETU: MOV [BP+6],AX
MOV [BX],AX
POP BP
RET 4
FACT ENDP
C2T10 PROC
MOV AX,RESULT
MOV SI,0
MOV CX,5
LEA BX,CONT
CVDL: CWD
DIV WORD PTR [BX]
ADD AL,30H
MOV BUF[SI],AL
INC SI
MOV AX,DX
ADD BX,2
LOOP CVDL
RET
C2T10 ENDP
CODE ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -