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

📄 cos.asm

📁 CHP 3 - Real-Time Digital Signal Processing: Implementations and Applications, Second Edition by Sen
💻 ASM
字号:
;                                              
;  Project: Experiment 3.6.5.3 Function Approximaiton - Chapter 3 
;  File name: cos.asm   
;
;  Description: cos(x) approximation function
;               using function: cos(x)=1-(1/2!)x^2+(1/4!)x^4-(1/6!)x^6
;
;  For the book "Real Time Digital Signal Processing: 
;                Implementation and Application, 2nd Ed"
;                By Sen M. Kuo, Bob H. Lee, and Wenshun Tian
;                Publisher: John Wiley and Sons, Ltd
;
;    Entry:  T0 = x, in the range of [0 pi/2] in Q14 format 
;    Return: T0 = cos(x) in Q15 format         
;
;    19 cycles
;               
;
;  Tools used: CCS v.2.12.07
;              TMS320VC5510 DSK Rev-C
;

	.mmregs

	.data
_icosCoef   ;[1 (-1/2!) (1/4!) (-1/6!)]
	.word  	32767,-16383,1365,-45

	.sect	".text"
	.def	_cosine

_cosine:
    amov #(_icosCoef+3),XAR3 ; ptr = &icosCoef[3];
    amov #AR1,AR2            ; AR1 is used as temp register
||  mov  T0, HI(AC0) 
    sqr  AC0                 ; AC0 = (long)T0 * T0; 
    sfts AC0,#-15            ; T0  = (short)(AC0>>15); 
    mov  AC0,T0
    mpym *AR3-,T0,AC0        ; AC0 = (long)T0 * *ptr--;
    sfts AC0,#-13            ; AC0 = AC0 >> 13; 
    add  *AR3-,AC0,AR1       ; AC0 = (short)(AC0 + *ptr--) * (long)T0; 
    mpym *AR2,T0,AC0   
    sfts AC0,#-13            ; AC0 = AC0 >> 13;
    add  *AR3-,AC0,AR1       ; AC0 = (short)(AC0 + *ptr--) * (long)T0; 
    mpym *AR2,T0,AC0  
    sfts AC0,#-13            ; AC0 = AC0 >> 13; 
||  mov  *AR3,T0
    add  AC0,T0              ; AC0 = AC0 + *ptr; 
    ret                      ; return((short)AC0); 
           
	.end

⌨️ 快捷键说明

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