求阶乘.txt
来自「通过汇编语言设计一个小程序来求一个数的阶乘」· 文本 代码 · 共 74 行
TXT
74 行
;求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 + =
减小字号Ctrl + -
显示快捷键?