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

📄 minidx.asm

📁 CCS3.3自带的TI 5400系列DSP的dsplib文件。文档说明可以在TI公司网站上下载。
💻 ASM
字号:
;***********************************************************
; Version 2.20.01                                           
;***********************************************************
;****************************************************************
;  Function:	minidx
;  Description: index of the minimum element of a vector
;
;  Copyright Texas instruments Inc, 1998
;----------------------------------------------------------------
;  Revision History:
;  1.00, R. Piedra, 8/31/98 - Original release.
;****************************************************************
        .mmregs

; Far-mode adjustment

	.if __far_mode
offset	.set 1			; far mode uses one extra location for ret addr  ll
	.else
offset	.set 0
	.endif

	.asg	(2), ret_addr		; stack description
					; x in A
	.asg	(3 + offset), arg_n
					; register usage
	.asg	ar0, ar_x
	.asg	ar2, ar_idx		; hold the min index
	.asg	ar3, ar_cnt		; index counter

;****************************************************************
	.def	_minidx
	.text

_minidx

        PSHM    ST0                                 ; 1 cycle
        PSHM    ST1                                 ; 1 cycle
        RSBX    OVA                                 ; 1 cycle
        RSBX    OVB                                 ; 1 cycle

; Get arguments and set modes
; ---------------------------

	ssbx	sxm			; sign extension on		(1)

	ld	*sp(arg_n),b		; b = n 			(1)
	sub	#1,b			; b = n-1			(2)
	stlm	b,brc			; brc = n-1			(1)

	stlm	a, ar_x 		; pointer to x			(1)
	stm	#0ffffh,ar_cnt		; clear index counter		(2)
	stm	#0,ar_idx		; clear index register		(2)
	ld	*ar_x+, b		; b = new element		(1)

	rptbd	eloop-1 		;				(2)
	ld	#7fffh,a		; a = most negative q15 value	(2)

	min	a			; compare a with b and store	(1)
					; min value in a.
					; C=1 if b(new element)<a
	mar	*ar_cnt+		;				(1)
	ld	*ar_x+, b		; b = new element		(1)
	xc	1, C			;				(1)
	mvmm	ar_cnt,ar_idx		;				(1)

eloop

	ldm	ar_idx,a		; return index pointer in A	(1)

        POPM    ST1
        POPM    ST0

	.if	__far_mode
	fret				;				(6)
	.else
	ret				;				(6)
	.endif

;end of file. please do not remove. it is left here to ensure that no lines of code are removed by any editor

⌨️ 快捷键说明

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