全国城市综合排名2017:Help! 有没有编程高手?在线等回答......

来源:百度文库 编辑:杭州交通信息网 时间:2024/05/05 01:39:03
用汇编语言编写程序求:1!+2!+3!+……+10!的结果。

有谁会用汇编语言编写吗?(不是C语言哦)
在线等回答。。。急。。。答对追加奖励分。
呵呵。看在你帮我找的份上,分给你了。

我在网上找的求阶乘的汇编语言,希望对你有帮助。

编程分析:
求N!本身是一个子程序,由于N!是N和(N-1)!的乘积,所以求(N-1)!必须递归调用求N!的子程序。

.CODE
//=========================================================================
// 函数: main()
// 描述:主函数
//=========================================================================
.PUBLIC _main;
_main:
R1 = 0x005;
CALL L_Fact_Sub;
MainLoop:
JMP MainLoop;
L_Fact_Sub:
PUSH R1 , R1 TO [SP];
CMP R1,0x0008; //判断阶乘数是否大于8
JA L_Overflow; //如果大于8则溢出,R2<-0xffff;
CMP R1 ,0x0000;
JNE L_eq1;
R2 = 0x01;
JMP L_Fend //退出
L_eq1:
CMP R1, 0x0001;
JNE L_eq2;
R2 = 0x01;
JMP L_Fend; //退出
L_eq2:
R1- =0x01;
CALL L_Fact_Sub; //调用递归子程序
R1+ =0x01;
MR = R2*R1;
R2 = R3;
JMP L_Fend;
L_Overflow:
R2=0xFFFF
L_Fend:
POP R1,R1 FROM [SP];
RETF