STACK SEGMENT PARA STACK 'STACK'
DW 64 DUP(?)
STACK ENDS
DATA SEGMENT
N DB 8 //定义一位数字
FUNCN DW ? //求得结果放于此
DATA ENDS
CODE SEGMENT
ASSUME CS: CODE,SS: STACK,DS: DATA
MAIN PROC FAR
START: PUSH DS
MOV AX, 0
PUSH AX
MOV AX, DATA
MOV DS, AX
PUSH CX
MOV AH, 0
MOV AL, N //将待求阶乘的数放在AL中
CALL FACTOR //调用求阶乘子程序
MOV FUNCN,AX //结果放入
POP CX
RET
MAIN ENDP
FACTOR PROC NEAR
PUSH AX
SUB AX,1
JNE AGAIN //如果N-1=0,则结束递归调用
POP AX
JMP FIN
AGAIN: CALL FACTOR //递归调用
POP CX
MUL CL ` //乘法运算
FIN: RET
FACTOR ENDP
CODE ENDS
END START
一个计算一个个位数阶乘的程序 代码没问题,但是没有所求数字的输入与结果的输出。。 下午要考试 求高手花2分钟救我一命。。。 跪了
DW 64 DUP(?)
STACK ENDS
DATA SEGMENT
N DB 8 //定义一位数字
FUNCN DW ? //求得结果放于此
DATA ENDS
CODE SEGMENT
ASSUME CS: CODE,SS: STACK,DS: DATA
MAIN PROC FAR
START: PUSH DS
MOV AX, 0
PUSH AX
MOV AX, DATA
MOV DS, AX
PUSH CX
MOV AH, 0
MOV AL, N //将待求阶乘的数放在AL中
CALL FACTOR //调用求阶乘子程序
MOV FUNCN,AX //结果放入
POP CX
RET
MAIN ENDP
FACTOR PROC NEAR
PUSH AX
SUB AX,1
JNE AGAIN //如果N-1=0,则结束递归调用
POP AX
JMP FIN
AGAIN: CALL FACTOR //递归调用
POP CX
MUL CL ` //乘法运算
FIN: RET
FACTOR ENDP
CODE ENDS
END START
一个计算一个个位数阶乘的程序 代码没问题,但是没有所求数字的输入与结果的输出。。 下午要考试 求高手花2分钟救我一命。。。 跪了