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

📄 main.asm

📁 全套资料包括:树及其在单片机中的算法实现及其相关源代码
💻 ASM
字号:
//======================================================
//  The information contained herein is the exclusive property of
//  Sunnnorth Technology Co. And shall not be distributed, reproduced,
//  or disclosed in whole in part without prior written permission.
//  (C) COPYRIGHT 2003  SUNNORTH TECHNOLOGY CO.
//  ALL RIGHTS RESERVED
//  The entire notice above must be reproduced on all authorized copies.
//========================================================

//========================================================
//  Filename:       main.asm      
//  Programmer:     Zhifa Lee  (email: zhifa/sunnorth)    (ext: 2913)
//  Version:        1.0.0 		
//  Date:           2003-5-19
//  Applied body:   unsp serial
//  Description:    call arithmetic program
//  Revision history:
//  ----------------------------------------------------------------------------------------
//  Version, YYYY-MM-DD-Index, File-Name: Modified By, Description
//  ----------------------------------------------------------------------------------------
//
//============================================================

.DEFINE DEBUGCHILDPOINTOR

.IFNDEF	C_StackBottom
.DEFINE C_StackBottom			0x07FF
.ENDIF


//============================================================
.IFDEF DEBUGSEQUENTSTORE
.EXTERNAL F_SequentStore_AccessByOrder;
.EXTERNAL F_SequentStore_AccessRootFirst;
.EXTERNAL F_SequentStore_AccessRootMid;
.EXTERNAL F_SequentStore_AccessRootLast;

.INCLUDE SequentialStore.inc
.ENDIF

.IFDEF DEBUGCHILDPOINTOR
.EXTERNAL F_ChildPointor_AccessRootFirst;
.EXTERNAL F_ChildPointor_AccessRootMid;
.EXTERNAL F_ChildPointor_AccessRootLast;
.include ChildPointor.inc
.ENDIF

//================================================================
.IRAM
GW_InputBuf:
.IFDEF DEBUGSEQUENTSTORE

		.TREENODE [20];
		.TREENODE ['1'];
		.TREENODE ['2'];
		.TREENODE ['3'];
		.TREENODE ['4'];
		.TREENODE ['5'];
		.TREENODE ['6'];
		.TREENODE ['7'];
		.TREENODE ['8'];
		.TREENODE ['9'];
		.TREENODE [0x3130];
		.TREENODE [0x3131];
		.TREENODE [0x3132];
		.TREENODE [0x3133];
		.TREENODE [0x3134];
		.TREENODE [0x3135];
		.TREENODE [0x3136];
		.TREENODE [0x3137];
		.TREENODE [0x3138];
		.TREENODE [0x3139];
		.TREENODE [0x3230];
		.TREENODE [0x3231];
		.TREENODE [0x3232];
		.TREENODE [0x3233];
		.TREENODE [0x3234];
		.TREENODE [0x3235];
		.TREENODE [0x3236];
		.TREENODE [0x3237];
		.TREENODE [0x3238];
		.TREENODE [0x3239];
		.TREENODE [0x3330];
		.TREENODE [0x3331];
		.TREENODE [0x3332];
		.TREENODE [0x3333];
		.TREENODE [0x3334];
		.TREENODE [0x3335];
		.TREENODE [0x3336];
		.TREENODE [0x3337];
		.TREENODE [0x3338];
		.TREENODE [0x3339];
		.TREENODE [0x3430];
		.TREENODE [0];
		.TREENODE [0];
		.TREENODE [0];
		.TREENODE [0];
		.TREENODE [0];
.ENDIF
.IFDEF DEBUGCHILDPOINTOR
?NodeNum1:
		.TREENODE ['1',?NodeNum2,?NodeNum3];
?NodeNum2:
		.TREENODE ['2',?NodeNum4,?NodeNum5];
?NodeNum3:
		.TREENODE ['3',?NodeNum6,?NodeNum7];
?NodeNum4:
		.TREENODE ['4',?NodeNum8,?NodeNum9];
?NodeNum5:
		.TREENODE ['5',?NodeNum10,?NodeNum11];
?NodeNum6:
		.TREENODE ['6',?NodeNum12,?NodeNum13];
?NodeNum7:
		.TREENODE ['7',?NodeNum14,?NodeNum15];
?NodeNum8:
		.TREENODE ['8',?NodeNum16,?NodeNum17];
?NodeNum9:
		.TREENODE ['9',?NodeNum18,?NodeNum19];
?NodeNum10:
		.TREENODE [0x3130,?NodeNum20,?NodeNum21];
?NodeNum11:
		.TREENODE [0x3131,?NodeNum22,?NodeNum23];
?NodeNum12:
		.TREENODE [0x3132,?NodeNum24,?NodeNum25];
?NodeNum13:
		.TREENODE [0x3133,?NodeNum26,?NodeNum27];
?NodeNum14:
		.TREENODE [0x3134,?NodeNum28,?NodeNum29];
?NodeNum15:
		.TREENODE [0x3135,?NodeNum30,?NodeNum31];
?NodeNum16:
		.TREENODE [0x3136,?NodeNum32,?NodeNum33];
?NodeNum17:
		.TREENODE [0x3137,?NodeNum34,?NodeNum35];
?NodeNum18:
		.TREENODE [0x3138,?NodeNum36,?NodeNum37];
?NodeNum19:
		.TREENODE [0x3139,?NodeNum38,?NodeNum39];
?NodeNum20:
		.TREENODE [0x3230,?NodeNum40,];
?NodeNum21:
		.TREENODE [0x3231,,];
?NodeNum22:
		.TREENODE [0x3232,,];
?NodeNum23:
		.TREENODE [0x3233,,];
?NodeNum24:
		.TREENODE [0x3234,,];
?NodeNum25:
		.TREENODE [0x3235,,];
?NodeNum26:
		.TREENODE [0x3236,,];
?NodeNum27:
		.TREENODE [0x3237,,];
?NodeNum28:
		.TREENODE [0x3238,,];
?NodeNum29:
		.TREENODE [0x3239,,];
?NodeNum30:
		.TREENODE [0x3330,,];
?NodeNum31:
		.TREENODE [0x3331,,];
?NodeNum32:
		.TREENODE [0x3332,,];
?NodeNum33:
		.TREENODE [0x3333,,];
?NodeNum34:
		.TREENODE [0x3334,,];
?NodeNum35:
		.TREENODE [0x3335,,];
?NodeNum36:
		.TREENODE [0x3336,,];
?NodeNum37:
		.TREENODE [0x3337,,];
?NodeNum38:
		.TREENODE [0x3338,,];
?NodeNum39:
		.TREENODE [0x3339,,];
?NodeNum40:
		.TREENODE [0x3430,,];
.ENDIF
.PUBLIC L_EndOfTree;
L_EndOfTree:
GW_OutputBuf:
		.DW 256 DUP(0);
.CODE
.PUBLIC _main;
_main:	.PROC
		sp=C_StackBottom;
		
		r1=GW_InputBuf;
		r2=GW_OutputBuf;
		push r1,r2 to [sp];
		
.IFDEF DEBUGSEQUENTSTORE
		call F_SequentStore_AccessByOrder;
.ENDIF

		sp+=2;
		
		nop;
		nop;
		nop;
		
		r1=GW_OutputBuf;
		r2=256;
		r3=0;
?L_ClrBuf:
		[r1++]=r3;
		r2-=1;
		jnz ?L_ClrBuf;
		
		r1=GW_InputBuf;
		r2=GW_OutputBuf;
		push r1,r2 to [sp];

.IFDEF DEBUGSEQUENTSTORE
		call F_SequentStore_AccessRootFirst;
.ENDIF

.IFDEF DEBUGCHILDPOINTOR
		call F_ChildPointor_AccessRootFirst;
.ENDIF


		sp+=2;
		
		nop;
		nop;
		nop;
		
		r1=GW_OutputBuf;
		r2=256;
		r3=0;
?L_ClrBuf1:
		[r1++]=r3;
		r2-=1;
		jnz ?L_ClrBuf1;
		
		r1=GW_InputBuf;
		r2=GW_OutputBuf;
		push r1,r2 to [sp];
		
.IFDEF DEBUGSEQUENTSTORE
		call F_SequentStore_AccessRootMid;
.ENDIF

.IFDEF DEBUGCHILDPOINTOR
		call F_ChildPointor_AccessRootMid;
.ENDIF

		sp+=2;
		
		nop;
		nop;
		nop;
		
		r1=GW_OutputBuf;
		r2=256;
		r3=0;
?L_ClrBuf2:
		[r1++]=r3;
		r2-=1;
		jnz ?L_ClrBuf2;
		
		r1=GW_InputBuf;
		r2=GW_OutputBuf;
		push r1,r2 to [sp];
		
.IFDEF DEBUGSEQUENTSTORE
		call F_SequentStore_AccessRootLast;
.ENDIF

.IFDEF DEBUGCHILDPOINTOR
		call F_ChildPointor_AccessRootLast;
.ENDIF

		sp+=2;

		
?L_DeadLoop:
		nop;
		nop;
		nop;
		jmp ?L_DeadLoop;
		.ENDP

⌨️ 快捷键说明

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