⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.asm

📁 spce061单片机的一些程序!C语言和汇编语言都有
💻 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 + -