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

📄 led.asm

📁 DSP的实验测试程序
💻 ASM
字号:
*******************************************************
* TMS320C2x/C2xx/C5x ANSI C Codegen Version 7.00       
*******************************************************
;	C:\tic2xx\c2000\cgtools\bin\dspac.exe -v2xx led.c C:\DOCUME~1\jjd\LOCALS~1\Temp\led.if 
;	dspopt NOT RUN
;	C:\tic2xx\c2000\cgtools\bin\dspcg.exe -o -v2xx -o C:\DOCUME~1\jjd\LOCALS~1\Temp\led.if C:\DOCUME~1\jjd\LOCALS~1\Temp\led.asm C:\DOCUME~1\jjd\LOCALS~1\Temp\led.tmp 
	.port
	.file	"led.c"
	.globl	_port00
	.globl	_LEDTest
	.globl	_delay
	.globl	_LEDflash
	.text

	.sym	_LEDTest,_LEDTest,32,2,0
	.globl	_LEDTest

	.func	8
;>>>> 	void LEDTest(unsigned int count)
******************************************************
* FUNCTION DEF : _LEDTest
******************************************************
_LEDTest:

LF1	.set	0

	POPD	*+
	SAR	AR0,*+
	SAR	AR1,*
	LARK	AR0,3
	LAR	AR0,*0+,AR2

	.sym	_count,-3+LF1,14,9,16
	.sym	_i,1,12,1,16
	.sym	_t,2,12,1,16
	.line	2
;>>>> 		unsigned char i,t;
	.line	4
;>>>> 		for(;count!=0;count--)
	LARK	AR2,-3+LF1
	MAR	*0+
	LAC	* 
	BZ	L2
	ADRK	5-LF1
L1:
	.line	6
;>>>> 		for(t=0,i=1;t<8;i=i<<1,t++)
	LACK	0
	SACL	*-
	LACK	1
	SACL	*+
	ZALS	* 
	SUBK	8
	BGEZ	L4
L3:
	.line	8
;>>>> 			if(t<4)asm("	setc  XF");
	ZALS	* 
	SUBK	4
	BGEZ	L5
	setc  XF
	B	L6
L5:
	.line	9
;>>>> 			else asm("	clrc  XF");
	clrc  XF
L6:
	.line	10
;>>>> 			LED=~i;
	MAR	*-
	LAC	* ,AR1
	CMPL
	SACL	* 
	LAC	* ,AR0
	SACL	* 
	OUT	* ,00h,AR1
	.line	11
;>>>> 			delay(500);
	LACK	500
	SACL	*+
	CALL	_delay
	MAR	*-,AR2
	.line	6
	LARK	AR2,1
	MAR	*0+
	LAC	* ,1
	SACL	*+
	LAC	* 
	ADDK	1
	SACL	* 
	ZALS	* 
	SUBK	8
	BLZ	L3
L4:
	.line	4
	SBRK	5-LF1
	LAC	* 
	SUBK	1
	SACL	* 
	LAC	* 
	ADRK	5-LF1
	BNZ	L1
L2:
	.line	14
;>>>> 		LED=0xffff;
	LACK	65535
	MAR	* ,AR0
	SACL	* 
	OUT	* ,00h,AR1
EPI0_1:
	.line	15
	SBRK	4
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	22,000000000H,3

	.sym	_delay,_delay,32,2,0
	.globl	_delay

	.func	25
;>>>> 	void delay(unsigned int period)
******************************************************
* FUNCTION DEF : _delay
******************************************************
_delay:

LF2	.set	0

	POPD	*+
	SAR	AR0,*+
	SAR	AR1,*
	LARK	AR0,3
	LAR	AR0,*0+,AR2

	.sym	_period,-3+LF2,14,9,16
	.sym	_periodi,1,4,1,16
	.sym	_periodj,2,4,1,16
	.line	2
;>>>> 	    int periodi, periodj;
	.line	5
;>>>> 	    for(periodi=0; periodi<period; periodi++)
	LACK	0
	LARK	AR2,1
	MAR	*0+
	SACL	* 
	ZALS	* 
	SBRK	4-LF2
	SUBS	* 
	BGEZ	L8
	ADRK	5-LF2
	RSXM ;;;
L7:
	.line	7
;>>>> 	        for(periodj=0; periodj<period>>1; periodj++);
	LACK	0
	SACL	* 
	SBRK	5-LF2
	LAC	* ,14,AR1
	SACH	* ,1,AR2
	ADRK	5-LF2
	ZALS	* ,AR1
	SUBS	* 
	BGEZ	L10
	MAR	* ,AR2
L9:
	LAC	* 
	ADDK	1
	SACL	* 
	SBRK	5-LF2
	LAC	* ,14,AR1
	SACH	* ,1,AR2
	ADRK	5-LF2
	ZALS	* ,AR1
	SUBS	* ,AR2
	BLZ	L9
L10:
	.line	5
	MAR	* ,AR2
	MAR	*-
	LAC	* 
	ADDK	1
	SACL	* 
	ZALS	* 
	SBRK	4-LF2
	SUBS	* 
	ADRK	5-LF2
	BLZ	L7
L8:
EPI0_2:
	.line	9
	MAR	* ,AR1
	SBRK	4
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	33,000000000H,3

	.sym	_LEDflash,_LEDflash,32,2,0
	.globl	_LEDflash

	.func	35
;>>>> 	void LEDflash(unsigned int id)
******************************************************
* FUNCTION DEF : _LEDflash
******************************************************
_LEDflash:

LF3	.set	0

	POPD	*+
	SAR	AR0,*+
	SAR	AR1,*
	LARK	AR0,1
	LAR	AR0,*0+,AR2

	.sym	_id,-3+LF3,14,9,16
	.line	2
;>>>> 		while(1)
L11:
	.line	6
;>>>> 			LED=id;
	LARK	AR2,-3+LF3
	MAR	*0+
	OUT	* ,00h,AR1
	.line	7
;>>>> 			delay(1500);
	LACK	1500
	SACL	*+
	CALL	_delay
	MAR	*-,AR0
	.line	8
;>>>> 			LED=0xffff;
	LACK	65535
	SACL	* 
	OUT	* ,00h,AR1
	.line	9
;>>>> 			delay(1500);
	LACK	1500
	SACL	*+
	CALL	_delay
	MAR	*-,AR2
	.line	10
	B	L11
	.endfunc	45,000000000H,1
	.end

⌨️ 快捷键说明

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