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

📄 blackman.asm

📁 包含几个高效的矢量运算的数学函数
💻 ASM
字号:
	.include "ccall.asm"
M .set 8 ; Sine table size log2

	.def	_ti_blackman
_ti_blackman:
; Begin C Preprocessing
	pre_ccall 3,AR_X,AR_Y,AR_N	

;STACK CONTENTS:
; 1 = sin_Index / sin_Ynext / sin_Ydiff
; 2 = sin_Frac
; 3 = 
	; Modify any registers needed
	spm	1		; MUST Set Product shift to +1
	clrc	SXM		; MUST Set Sign Extension Mode Off
	; Note: Overflow mode is off in C.

; Subtract one from N and check for N=0
	mar *,AR_N
	banz LOOP,AR_X
	b DONE

;	ldp	#sin_X		
;	lacc	sin_X,8		; Index = integer(X + Phase)
LOOP:
	lacc *+,M-1,AR_STACK
	        
;;;	add	sin_Phase,8	;;; UNUSED

;	sach sin_Index	
;   sacl sin_Frac
	sach *+,1
	and #07fffh ; Zero sign bit
	sacl *-

;	lacc	sin_Index	; Y = SinTable[Index], 
	lacc *,AR_Y
	add #_BlackmanTable	
;	tblr sin_Y
	tblr *,AR_STACK
	add	#1
;	tblr sin_Ynext	; Ynext = SinTable[Index+1],
	tblr *

;	lacc sin_Ynext	; Ydiff = Ynext - Y
	lacc *,AR_Y
;	sub	sin_Y
	sub *,AR_STACK
;	sacl sin_Ydiff
	sacl *

;	lt sin_Ydiff	; Y = round(Y + Ydiff*Frac)
	lt *+
;	mpy	sin_Frac
	mpy *-,AR_Y
;	zalr sin_Y
	zalr *
	apac
;	sach sin_Y	
	sach *+,AR_N
	banz LOOP,AR_X

; Begin C Post Processing
DONE:
	; Restore any other registers modified
	; Note: Overflow mode is off in C.
	spm	0
	post_ccall 3



; You may substitute your own sine table here to trade off accuracy for storage.  
; Just compute one full cycle of
; a sine wave from 0 to 2*pi and add an extra sample at the end, and convert
; to Q.15 format.
  
; In Matlab:
; 
; tv=linspace(0,2*pi,N+1);
; table=sin(tv);
; inttable=floor(32767.999999999*table);


_BlackmanTable:
 .if (M==8) ; error = +- 2 LS bits
 .word           -1
 .word            1
 .word            7
 .word           16
 .word           28
 .word           44
 .word           64
 .word           87
 .word          115
 .word          146
 .word          181
 .word          220
 .word          263
 .word          311
 .word          362
 .word          418
 .word          479
 .word          544
 .word          614
 .word          689
 .word          769
 .word          854
 .word          945
 .word         1041
 .word         1142
 .word         1250
 .word         1363
 .word         1483
 .word         1608
 .word         1741
 .word         1879
 .word         2025
 .word         2177
 .word         2336
 .word         2502
 .word         2676
 .word         2857
 .word         3045
 .word         3241
 .word         3445
 .word         3656
 .word         3876
 .word         4103
 .word         4339
 .word         4582
 .word         4834
 .word         5094
 .word         5362
 .word         5639
 .word         5923
 .word         6216
 .word         6517
 .word         6826
 .word         7144
 .word         7469
 .word         7803
 .word         8144
 .word         8493
 .word         8849
 .word         9214
 .word         9585
 .word         9964
 .word        10349
 .word        10742
 .word        11141
 .word        11546
 .word        11957
 .word        12374
 .word        12797
 .word        13225
 .word        13658
 .word        14095
 .word        14537
 .word        14982
 .word        15431
 .word        15883
 .word        16338
 .word        16796
 .word        17255
 .word        17716
 .word        18178
 .word        18641
 .word        19104
 .word        19567
 .word        20029
 .word        20490
 .word        20949
 .word        21407
 .word        21861
 .word        22313
 .word        22761
 .word        23205
 .word        23645
 .word        24079
 .word        24508
 .word        24931
 .word        25347
 .word        25757
 .word        26159
 .word        26553
 .word        26938
 .word        27315
 .word        27683
 .word        28041
 .word        28388
 .word        28725
 .word        29051
 .word        29365
 .word        29668
 .word        29958
 .word        30236
 .word        30501
 .word        30753
 .word        30991
 .word        31215
 .word        31425
 .word        31620
 .word        31801
 .word        31967
 .word        32118
 .word        32253
 .word        32373
 .word        32477
 .word        32566
 .word        32638
 .word        32695
 .word        32735
 .word        32759
 .word        32767
 .word        32759
 .word        32735
 .word        32695
 .word        32638
 .word        32566
 .word        32477
 .word        32373
 .word        32253
 .word        32118
 .word        31967
 .word        31801
 .word        31620
 .word        31425
 .word        31215
 .word        30991
 .word        30753
 .word        30501
 .word        30236
 .word        29958
 .word        29668
 .word        29365
 .word        29051
 .word        28725
 .word        28388
 .word        28041
 .word        27683
 .word        27315
 .word        26938
 .word        26553
 .word        26159
 .word        25757
 .word        25347
 .word        24931
 .word        24508
 .word        24079
 .word        23645
 .word        23205
 .word        22761
 .word        22313
 .word        21861
 .word        21407
 .word        20949
 .word        20490
 .word        20029
 .word        19567
 .word        19104
 .word        18641
 .word        18178
 .word        17716
 .word        17255
 .word        16796
 .word        16338
 .word        15883
 .word        15431
 .word        14982
 .word        14537
 .word        14095
 .word        13658
 .word        13225
 .word        12797
 .word        12374
 .word        11957
 .word        11546
 .word        11141
 .word        10742
 .word        10349
 .word         9964
 .word         9585
 .word         9214
 .word         8849
 .word         8493
 .word         8144
 .word         7803
 .word         7469
 .word         7144
 .word         6826
 .word         6517
 .word         6216
 .word         5923
 .word         5639
 .word         5362
 .word         5094
 .word         4834
 .word         4582
 .word         4339
 .word         4103
 .word         3876
 .word         3656
 .word         3445
 .word         3241
 .word         3045
 .word         2857
 .word         2676
 .word         2502
 .word         2336
 .word         2177
 .word         2025
 .word         1879
 .word         1741
 .word         1608
 .word         1483
 .word         1363
 .word         1250
 .word         1142
 .word         1041
 .word          945
 .word          854
 .word          769
 .word          689
 .word          614
 .word          544
 .word          479
 .word          418
 .word          362
 .word          311
 .word          263
 .word          220
 .word          181
 .word          146
 .word          115
 .word           87
 .word           64
 .word           44
 .word           28
 .word           16
 .word            7
 .word            1
 .word           -1
 .endif
 .if (M==9) ; error = +- 2 LS bits
 .endif

⌨️ 快捷键说明

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