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

📄 dsp1.asm

📁 我在公司做的基于430F206的互感器现场效验仪
💻 ASM
字号:
*******************************************************
* TMS320C2x/C2xx/C5x ANSI C Codegen Version 7.00       
*******************************************************
;	C:\TDS-EMU2XX\C2000\CGTOOLS\BIN\DSPAC.EXE -v2xx dsp1.c C:\WINDOWS\TEMP\dsp1.if 
;	dspopt NOT RUN
;	C:\TDS-EMU2XX\C2000\CGTOOLS\BIN\DSPCG.EXE -o -v2xx -o C:\WINDOWS\TEMP\dsp1.if C:\WINDOWS\TEMP\dsp1.asm C:\WINDOWS\TEMP\dsp1.tmp 
	.port
	.file	"dsp1.c"
	.file	"c:\TDS-EMU2XX\c2000\cgtools\include\stdio.h"
	.sym	_size_t,0,14,13,16

	.stag	.fake0,112
	.member	_fd,0,4,8,16
	.member	_buf,16,28,8,16
	.member	_pos,32,28,8,16
	.member	_bufend,48,28,8,16
	.member	_buff_stop,64,28,8,16
	.member	_flags,80,14,8,16
	.member	_index,96,4,8,16
	.eos
	.sym	_FILE,0,8,13,112,.fake0
	.sym	_fpos_t,0,5,13,32

	.stag	.fake1,272
	.member	_name,0,50,8,144,,9
	.member	_flags,144,13,8,16
	.member	_OPEN,160,148,8,16
	.member	_CLOSE,176,148,8,16
	.member	_READ,192,148,8,16
	.member	_WRITE,208,148,8,16
	.member	_LSEEK,224,149,8,16
	.member	_UNLINK,240,148,8,16
	.member	_RENAME,256,148,8,16
	.eos
	.sym	__DEVICE,0,8,13,272,.fake1
	.globl	__ftable
	.globl	__tmpnams
	.globl	_remove
	.globl	_rename
	.globl	_tmpfile
	.globl	_tmpnam
	.globl	_fclose
	.globl	_fopen
	.globl	_freopen
	.globl	_setbuf
	.globl	_setvbuf
	.globl	_fflush
	.globl	_fprintf
	.globl	_fscanf
	.globl	_printf
	.globl	_scanf
	.globl	_sprintf
	.globl	_sscanf
	.globl	_vfprintf
	.globl	_vprintf
	.globl	_vsprintf
	.globl	_fgetc
	.globl	_fgets
	.globl	_fputc
	.globl	_fputs
	.globl	_getc
	.globl	_getchar
	.globl	_gets
	.globl	_putc
	.globl	_putchar
	.globl	_puts
	.globl	_ungetc
	.globl	_fread
	.globl	_fwrite
	.globl	_fgetpos
	.globl	_fseek
	.globl	_fsetpos
	.globl	_ftell
	.globl	_rewind
	.globl	_clearerr
	.globl	_feof
	.globl	_ferror
	.globl	_perror
	.globl	_getenv
	.globl	_add_device
	.file	"c:\TDS-EMU2XX\c2000\cgtools\include\math.h"
	.globl	_asin
	.globl	_acos
	.globl	_atan
	.globl	_atan2
	.globl	_ceil
	.globl	_cos
	.globl	_cosh
	.globl	_exp
	.globl	_fabs
	.globl	_floor
	.globl	_fmod
	.globl	_frexp
	.globl	_ldexp
	.globl	_log
	.globl	_log10
	.globl	_modf
	.globl	_pow
	.globl	_sin
	.globl	_sinh
	.globl	_sqrt
	.globl	_tan
	.globl	_tanh
	.file	"c:\TDS-EMU2XX\c2000\cgtools\include\stdlib.h"
	.sym	_wchar_t,0,2,13,16
	.globl	_atoi
	.globl	_atol
	.globl	_atof
	.globl	_strtod
	.globl	_strtol
	.globl	_strtoul

	.stag	__div_t,32
	.member	_quot,0,4,8,16
	.member	_rem,16,4,8,16
	.eos
	.sym	_div_t,0,8,13,32,__div_t

	.stag	__ldiv_t,64
	.member	_quot,0,5,8,32
	.member	_rem,32,5,8,32
	.eos
	.sym	_ldiv_t,0,8,13,64,__ldiv_t
	.globl	_div
	.globl	_ldiv
	.globl	_rand
	.globl	_srand
	.globl	_calloc
	.globl	_free
	.globl	_malloc
	.globl	_minit
	.globl	_realloc
	.globl	_abort
	.globl	_exit
	.globl	_atexit
	.globl	_abs
	.globl	_labs
	.globl	_qsort
	.globl	_bsearch
	.file	"dsp1.c"
	.globl	_avg
	.globl	_av
	.globl	_ratio_lb
	.globl	_N
	.text

	.sym	_avg,_avg,38,2,0
	.globl	_avg

	.func	9
;>>>> 	float avg(float *ap)
******************************************************
* FUNCTION DEF : _avg
******************************************************
_avg:

LF1	.set	0

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

	.sym	_ap,-3+LF1,22,9,16
	.sym	_sum,1,6,1,32
	.sym	_i,3,4,1,16
	.line	2
;>>>> 		float sum;
;>>>> 		int i;
	.line	5
;>>>> 		sum=0.0;
	LALK	FL0
	LARK	AR2,1
	MAR	*0+
	RPTK	1
	TBLR	*+
	.line	6
;>>>> 		for(i=0;i<N;i++)
	LACK	0
	SACL	* 
	SSXM
	LAC	* 
	LDPK	_N
	SUB	_N
	BGEZ	L2
	SBRK	6-LF1
L1:
	.line	8
;>>>> 			sum=sum+(*ap);
	LAR	AR3,* ,AR3
	LAC	*+,AR1
	SACL	*+,AR3
	LAC	*-,AR1
	SACL	*+,AR2
	ADRK	4-LF1
	LAC	*+,AR1
	SACL	*+,AR2
	LAC	*-,AR1
	SACL	*+
	CALL	F$$ADD
	MAR	*-
	ZALH	*-
	ADDS	* ,AR2
	SACL	*+
	SACH	* ,AR3
	.line	9
;>>>> 			ap++;
	ADRK	2
	MAR	* ,AR2
	SBRK	5-LF1
	SAR	AR3,* 
	.line	6
	ADRK	6-LF1
	LAC	* 
	ADDK	1
	SACL	* 
	SSXM
	LAC	* 
	LDPK	_N
	SUB	_N
	SBRK	6-LF1
	BLZ	L1
L2:
	.line	11
;>>>> 		return(sum/N);		
	LAC	_N
	CALL	F$$ITOF,AR1
	MAR	* ,AR2
	LARK	AR2,1
	MAR	*0+
	LAC	*+,AR1
	SACL	*+,AR2
	LAC	* ,AR1
	SACL	*+
	CALL	F$$DIV
	MAR	*-
	ZALH	*-
	ADDS	* 
EPI0_1:
	.line	12
	SBRK	5
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	20,000000000H,4

	.sym	_av,_av,38,2,0
	.globl	_av

	.func	22
;>>>> 	float av(float *ff)
******************************************************
* FUNCTION DEF : _av
******************************************************
_av:

LF2	.set	0

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

	.sym	_ff,-3+LF2,22,9,16
	.sym	_ss,1,6,1,32
	.sym	_i,3,4,1,16
	.line	2
;>>>> 		float ss;
;>>>> 		int i;
	.line	5
;>>>> 		ss=0;
	LALK	FL0
	LARK	AR2,1
	MAR	*0+
	RPTK	1
	TBLR	*+
	.line	6
;>>>> 		for(i=0;i<N;i++)
	LACK	0
	SACL	* 
	SSXM
	LAC	* 
	LDPK	_N
	SUB	_N
	BGEZ	L4
	SBRK	6-LF2
L3:
	.line	8
;>>>> 			ss+=(*ff)*(*ff);
	LAR	AR3,* ,AR3
	LAC	*+,AR1
	SACL	*+,AR3
	LAC	*-,AR1
	SACL	*+,AR3
	LAC	*+,AR1
	SACL	*+,AR3
	LAC	*-,AR1
	SACL	*+
	CALL	F$$MUL
	MAR	* ,AR2
	ADRK	4-LF2
	LAC	*+,AR1
	SACL	*+,AR2
	LAC	*-,AR1
	SACL	*+
	CALL	F$$ADD
	MAR	*-
	ZALH	*-
	ADDS	* ,AR2
	SACL	*+
	SACH	* ,AR3
	.line	9
;>>>> 			ff++;
	ADRK	2
	MAR	* ,AR2
	SBRK	5-LF2
	SAR	AR3,* 
	.line	6
	ADRK	6-LF2
	LAC	* 
	ADDK	1
	SACL	* 
	SSXM
	LAC	* 
	LDPK	_N
	SUB	_N
	SBRK	6-LF2
	BLZ	L3
L4:
	.line	11
;>>>> 		return(sqrt(ss/N));
	LAC	_N
	CALL	F$$ITOF,AR1
	MAR	* ,AR2
	LARK	AR2,1
	MAR	*0+
	LAC	*+,AR1
	SACL	*+,AR2
	LAC	* ,AR1
	SACL	*+
	CALL	F$$DIV
	CALL	_sqrt
	SBRK	2
EPI0_2:
	.line	12
	SBRK	5
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	33,000000000H,4

	.sym	_ratio_lb,_ratio_lb,38,2,0
	.globl	_ratio_lb

	.func	36
;>>>> 	float ratio_lb(float *ap)
******************************************************
* FUNCTION DEF : _ratio_lb
******************************************************
_ratio_lb:

LF3	.set	0

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

	.sym	_ap,-3+LF3,22,9,16
	.sym	_temp,1,6,1,32
	.sym	_i,3,4,1,16
	.sym	_j,4,4,1,16
	.sym	_ap1,5,22,1,16
	.line	2
;>>>> 		float temp;
;>>>> 		int i,j;
;>>>> 		float *ap1; 
	.line	6
;>>>> 		ap1=ap;
	LARK	AR2,-3+LF3
	MAR	*0+
	LAC	* 
	ADRK	8-LF3
	SACL	* 
	.line	7
;>>>> 		for(i=0;i<9;i++)
	LACK	0
	SBRK	2
	SACL	* 
	SSXM
	LAC	* 
	SUBK	9
	BGEZ	L6
L5:
	.line	9
;>>>> 			for(j=i+1;j<10;j++)
	LAC	*+
	ADDK	1
	SACL	* 
	LAC	* 
	SUBK	10
	BGEZ	L8
	MAR	*+
L7:
	.line	11
;>>>> 				if((*ap1)>(*(ap1+1)))
	LAR	AR3,* ,AR3
	ADRK	2
	LAC	*+,AR1
	SACL	*+,AR3
	LAC	*-,AR1
	SACL	*+,AR3
	SBRK	2
	LAC	*+,AR1
	SACL	*+,AR3
	LAC	*-,AR1
	SACL	*+
	CALL	F$$GT
	BZ	L9
	.line	13
;>>>> 					temp=*ap1;
	MAR	* ,AR3
	ZALS	*+
	ADDH	*-,AR2
	SBRK	4
	SACL	*+
	SACH	* 
	.line	14
;>>>> 					*ap1=*(ap1+1);
	ADRK	3
	LAR	AR4,* ,AR3
	ADRK	2
	ZALS	*+
	ADDH	*-,AR4
	SACL	*+
	SACH	*-,AR2
	.line	15
;>>>> 					*(ap1+1)=temp;
	SBRK	4
	ZALS	*+
	ADDH	* ,AR4
	ADRK	2
	SACL	*+
	SACH	*-
L9:
	.line	17
;>>>> 				ap1++;
	MAR	* ,AR2
	LARK	AR2,5
	MAR	*0+
	LAR	AR3,* ,AR3
	ADRK	2
	MAR	* ,AR2
	SAR	AR3,*-
	.line	9
	LAC	* 
	ADDK	1
	SACL	* 
	SSXM
	LAC	*+
	SUBK	10
	BLZ	L7
L8:
	.line	19
;>>>> 			ap1=ap;
	LARK	AR2,-3+LF3
	MAR	*0+
	LAC	* 
	ADRK	8-LF3
	SACL	* 
	.line	7
	SBRK	2
	LAC	* 
	ADDK	1
	SACL	* 
	LAC	* 
	SUBK	9
	BLZ	L5
L6:
	.line	21
;>>>> 		return(((*(ap+3))+(*(ap+4))+(*(ap+5))+(*(ap+6)))/4.0);
	MAR	* ,AR1
	LALK	FL1
	RPTK	1
	TBLR	*+
	MAR	* ,AR2
	SBRK	6-LF3
	LAR	AR3,* ,AR3
	ADRK	12
	LAC	*+,AR1
	SACL	*+,AR3
	LAC	*-,AR1
	SACL	*+,AR3
	SBRK	2
	LAC	*+,AR1
	SACL	*+,AR3
	LAC	*-,AR1
	SACL	*+,AR3
	SBRK	2
	LAC	*+,AR1
	SACL	*+,AR3
	LAC	*-,AR1
	SACL	*+,AR3
	SBRK	2
	LAC	*+,AR1
	SACL	*+,AR3
	LAC	*-,AR1
	SACL	*+
	CALL	F$$ADD
	CALL	F$$ADD
	CALL	F$$ADD
	CALL	F$$DIV
	MAR	*-
	ZALH	*-
	ADDS	* 
EPI0_3:
	.line	22
	SBRK	7
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	57,000000000H,6
*************************************************
* DEFINE FLOATING POINT CONSTANTS               *
*************************************************
	.text
FL0:	.float	0.
FL1:	.float	4.
*****************************************************
* UNDEFINED REFERENCES                              *
*****************************************************
	.global	F$$ADD
	.global	F$$ITOF
	.global	F$$DIV
	.global	F$$MUL
	.global	F$$GT
	.end

⌨️ 快捷键说明

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