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

📄 data_cache.asm

📁 师姐给我留下的项目的源代码
💻 ASM
字号:
***************************************
****File name: data_cache.asm

***************************************
       .include "F2407REGS.H"
       .def     DATA_CACHE,TEST
  
DATA_CACHE:
    NOP
    MAR   *,AR2
    BANZ  DATA_S,*-,AR1
    NOP
    LAR   AR2,#255
    SBRK  #255  
    SBRK  #1
DATA_S:
    SACL  *+
    
    RET
******************************************
**ia,ib

******************************************

    .def IA,IB
    .ref SINTAB_360
    .ref N,D_THETA
I_H     .usect "theta",1
I_L     .usect "theta",1
IA      .usect "theta",1
IB      .usect "theta",1
INXT_ENTRY .usect "theta",1
TEST:
   


     NOP
**************************************
**** THETA=N*D_THETA
**************************************
    LDP   #N
    ;SPM   1
    LT    D_THETA
    MPY   N             ;Q13*Q0
    PAC                 ;Q14
    SACH  I_H,2 	;Table pointer
	AND   #3FFFH        ;Force THETA_L to a positive number
	SACL  I_L,1		;Q15

******************************************
****Calculate the sin_theta

******************************************
	LACC  I_H
	AND   #0FFH
	ADD	  #SINTAB_360
	TBLR  IA		;sin_theta = Sin(theta) in Q15
	ADD	  #1H			;Inc Table pointer
	TBLR  INXT_ENTRY		;Get next entry i.e. (Entry + 1)
	LACC  INXT_ENTRY
	SUB	  IA		;Find Delta of 2 points
	SACL  INXT_ENTRY
	LT	  INXT_ENTRY
	MPY	  I_L		;THETA_L = interpolation value
	LACC  IA,16
	APAC
	SFR
	SFR
	SFR
	SFR
	;add   #8192,15    ;for test
	SACH  IA		;sin_theta = Final interpolated value    
	
*******************************************
****Calculate the cos_theta

*******************************************
    LACL  I_H
    ADD   #0ABH          ;COS_THETA=SIN_THETA+90,256/3=64->40H
    AND   #0FFH
    ADD   #SINTAB_360
    TBLR  IB
    ADD	  #1H			;Inc Table pointer
	TBLR  INXT_ENTRY		;Get next entry i.e. (Entry + 1)
	LACC  INXT_ENTRY
	SUB	  IB		;Find Delta of 2 points
	SACL  INXT_ENTRY
	LT	  INXT_ENTRY
	MPY	  I_L		;THETA_L = interpolation value
	LACC  IB,16
	APAC
	SFR
	SFR
	SFR
	SFR
	SACH  IB		;sin_theta = Final interpolated value 
    RET

⌨️ 快捷键说明

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