用汇编语言求一位数的阶乘运算 上程序能运行的
8个回答
展开全部
同意楼上,用C语言编译一下参照着写就行了(不过我还真没用汇编直接写过代码)
80C51上的C语言程序
方法一:
unsigned long code Fac[9]={1,2,6,24,120,720,5040,40320,362880};
#define fac(n) Fac[n]
方法二:
unsigned long fac(unsigned char n)
{
unsigned long ret=n;
while(--n) ret *= n;
return ret;
}
80C51上的C语言程序
方法一:
unsigned long code Fac[9]={1,2,6,24,120,720,5040,40320,362880};
#define fac(n) Fac[n]
方法二:
unsigned long fac(unsigned char n)
{
unsigned long ret=n;
while(--n) ret *= n;
return ret;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用汇编语言求一位数的阶乘,在我的百度空间,有程序。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
求中位数,然后是对数的数目10就行了。至于阶乘,如果n是不是一个很大的直接计数,当n为大Stirling公式寻求
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
ASSUME CS:CODE,DS:DATA
DATA SEGMENT
MSG1 DB 0AH,0DH,'PELASE INPUT A NUMBER : $'
MSG2 DB '! IS $'
TEMP DB ?
DATA ENDS
CODE SEGMENT
;十六进制转十进制函数,AX传参
CONVERT PROC
MOV DX,0
MOV BX,10
MOV CX,0
L:
DIV BX
ADD DX,30H
INC CX
PUSH DX
MOV DX,0
CMP AX,0
JNZ L
O:
POP DX
MOV AH,2
INT 21H
LOOP O
R:
RET
CONVERT ENDP
START:
MOV AX,DATA
MOV DS,AX
MOV DX,OFFSET MSG1
MOV AH,9
INT 21H
MOV AH,1
INT 21H
PUSH AX
MOV AH,2
MOV DL,0AH
INT 21H
MOV DL,0DH
INT 21H
POP AX
MOV DL,AL
MOV AH,2
INT 21H
MOV DX,OFFSET MSG2
MOV AH,9
INT 21H
SUB AL,30H
MOV AH,0
MOV CX,AX
MOV AX,1
UF:
MUL CX
LOOP UF
CALL CONVERT
MOV AX,4C00H
INT 21H
CODE ENDS
END START
DATA SEGMENT
MSG1 DB 0AH,0DH,'PELASE INPUT A NUMBER : $'
MSG2 DB '! IS $'
TEMP DB ?
DATA ENDS
CODE SEGMENT
;十六进制转十进制函数,AX传参
CONVERT PROC
MOV DX,0
MOV BX,10
MOV CX,0
L:
DIV BX
ADD DX,30H
INC CX
PUSH DX
MOV DX,0
CMP AX,0
JNZ L
O:
POP DX
MOV AH,2
INT 21H
LOOP O
R:
RET
CONVERT ENDP
START:
MOV AX,DATA
MOV DS,AX
MOV DX,OFFSET MSG1
MOV AH,9
INT 21H
MOV AH,1
INT 21H
PUSH AX
MOV AH,2
MOV DL,0AH
INT 21H
MOV DL,0DH
INT 21H
POP AX
MOV DL,AL
MOV AH,2
INT 21H
MOV DX,OFFSET MSG2
MOV AH,9
INT 21H
SUB AL,30H
MOV AH,0
MOV CX,AX
MOV AX,1
UF:
MUL CX
LOOP UF
CALL CONVERT
MOV AX,4C00H
INT 21H
CODE ENDS
END START
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询