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

📄 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.17  二维数组查表
//  文件来源:   《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-24(添加版本说明及版权声明并做代码标准化)
//============================================================================
//测试主程序
.PUBLIC _main
.CODE 
_main:
	r1 = 1;
	r2 = 3;
	call F_Get_Array;
	r1 = 4;
	r2 = 6;
	call F_Get_Array;
	jmp _main;
//=================================================================================
//入口:R1 = 元素下标I(矩阵行号)
//		R2 = 元素下标j(矩阵列号)
//出口:R1 = 查找到的元素 
//		R2 = 查找成功标志(1为查找成功,2为行号溢出,3为列号溢出)
//子程序:F_Get_Array
//=================================================================================
F_Get_Array:	.PROC

	r3 = [Array_Table];		//取矩阵行数
	cmp r3,r1;			//比较行是否出界
	jbe ?row;				//如果出界,则跳到行溢出处理

	r4 = [Array_Table+1];	//取矩阵列数
	cmp r4,r2				//比较列是否出界
	jbe ?colum;			//如果出界,则跳到列溢出处理

	mr = r1 * r4;
	r2 = r2 + r3;			//计算元素地址的偏移量

	r2 += Array_Table+2;	//计算元素地址的绝对地址
	r1 = [r2];				//取元素值
	r2 = 1;				//成功标示
	retf;

?row:
	r2 = 2;				//行溢出标志
	retf;
?colum:
	r2 = 3;				//列溢出标志
	retf;
	.ENDP
	
.CODE
Array_Table:
	.DW 3,5					//定义矩阵行数为3,列数为5
	.DW 1,	2,	3,	4,	5	//矩阵0行
	.DW 6,	7,	8,	9,	10	//矩阵1行
	.DW 11,	12,	13,	14,	15	//矩阵2行

⌨️ 快捷键说明

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