📄 main.asm
字号:
//============================================================================
//
// The information contained herein is the exclusive property of
// Sunplus Technology Co. And shall not be distributed, reproduced,
// or disclosed in whole in part without prior written permission.
//
// (C) COPYRIGHT 2001 SUNPLUS TECHNOLOGY CO.
// ALL RIGHTS RESERVED
//
// The entire notice above must be reproduced on all authorized copies.
//
//============================================================================
// 工程名称: 程序4.9 N!的程序
// 功能描述: 程序4.9 N!的程序
// N!=N*(N-1)*(N-2)*....*1
// N的阶乘递推公式如下:
// 0!=1 、N!=N*(N-1)
// 文件来源: 《SPCE061单片机原理及应用技术》 第四章 程序设计
// IDE环境: SUNPLUS u'nSPTM IDE 1.8.0(or later)
//
// 涉及的库: (a) C-Lib: (CMacro.lib);
// 组成文件:
// main.asm
// Resource.asm
// 日期: 2003-5-20(建立)
// 2003-7-16(添加版本说明及版权声明并做代码标准化)
//===============================================================
.CODE
.public _main;
_main:
r1 = 0x005;
call _Fact_Sub;
MainLoop:
jmp MainLoop;
_Fact_Sub:
push r1 , r1 to [sp];
cmp r1,0x0008; //判断阶乘数是否大于8
ja Overflow; //如果大于8则溢出,R2<-0xffff;
cmp r1 ,0x0000;
jne _eq1;
r2 = 0x01;
jmp _Fend; //退出
_eq1:
cmp r1, 0x0001;
jne _eq2;
r2 = 0x01;
jmp _Fend; //退出
_eq2:
r1- =0x01;
call _Fact_Sub; //调用递归子程序
r1+ =0x01;
mr = r2*r1;
r2 = r3;
jmp _Fend;
Overflow:
r2=0xffff;
_Fend:
pop r1,r1 from [sp];
retf
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -