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

📄 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.6  冒泡排序
//				 在首地址为0X0000的RAM之中依次存有数据40、6、32、12、9、24、28,使用冒泡法编写
//       		 对这些数据进行按升序号排序的程序
//  文件来源:   《SPCE061单片机原理及应用技术》 第四章  程序设计
//  IDE环境:    SUNPLUS u'nSPTM  IDE 1.8.0(or later)
//
//  涉及的库:	 (a) C-Lib:  (CMacro.lib);
//  组成文件:
//    			 main.asm				 
//  日期:        2003-5-22(建立)
//				 2003-7-16(添加版本说明及版权声明并做代码标准化)
//==============================================================================
.IRAM
array: .DW 40,6,32,12,9,24,28;
.VAR flag;  					//定义数据交换标志
.CODE
.PUBLIC _main;
_main:
		
SORT:
	bp = array;  				//数据的首地址送bp
	r1 = 0x0006;				//数据的个数送r1
    r4 = 0x0000;
    [flag] = r4; 					//清交换标志
LOOP:
    r3 = [bp];
    cmp r3,[bp+1]; 			//两数比较
    jb NEXT;				//如果第一个小于第二个数则跳转
    r2 = [bp+1];                    //
    [bp] = r2; 				//第二个数移到存第一数的单元中
    [bp+1] = r3; 				//第一个数移到存第二数的单元中
    r3 = 0x0001;
    [flag] = r3;				//交换标志置1
NEXT:
	bp = bp+1;				//地址增1
	r1 -= 1;					//计数为0吗?,否则跳转
	JNZ LOOP;
	r4 = [flag]     
	jnz SORT;  			//交换标志为0吗?否则跳到SORT
MAINLOOP:
	nop;
	JMP MAINLOOP;
//===============================================================================
//main.asm 结束
//===============================================================================

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -