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

📄 util_asm.asm

📁 g.729汇编手工优化
💻 ASM
字号:
	.mmregs
FP	.set	AR7

	.sect	".cinit"
	.align	1
	.field  	1,16
	.field  	_seed$1+0,16
	.field  	21845,16			; _seed$1 @ 0

	.sect	".text"
	.bss	_seed$1,1,0,0

	.sect	".text"
	.global	_Set_zero
;----------------------------------------------------------------------
;  20 | void Set_zero(                                                         
;  21 | Word16 x[],       /* (o)    : vector to clear     */                   
;  22 | Word16 L          /* (i)    : length of vector    */                   
;  23 | )                                                                      
;----------------------------------------------------------------------
_Set_zero:
        PSHM      AR1
;----------------------------------------------------------------------
;  25 | Word16 i;                                                              
;----------------------------------------------------------------------
        SSBX      SXM
        NOP
        LD        *SP(2),B
;----------------------------------------------------------------------
;  27 | for (i = 0; i < L; i++)                                                
;----------------------------------------------------------------------
        BC        L2,BLEQ               
        
        STLM      A,AR1
        SUB       #1,B,A
        STLM      A,BRC
        NOP
        RPTB      L2-1      
L1:    
        ST        #0,*AR1+              
L2:    
        POPM      AR1
        RET



	.sect	".text"
	.global	_Random
;----------------------------------------------------------------------
;  54 | Word16 Random()                                                        
;----------------------------------------------------------------------

_Random:
;----------------------------------------------------------------------
;  59 | seed = extract_l(L_add(L_shr(L_mult(seed, 31821), 1), 13849L));        
;----------------------------------------------------------------------
        SSBX      SXM          ; ****
        SSBX      FRCT
        SSBX      OVM

        MPY       *(_seed$1),#31821,A   
            
        SFTA      A,-1

        LD        #13849,B
        ADD       B,A                   
        STL       A,*(_seed$1)          

;----------------------------------------------------------------------
;  61 | return(seed);                                                          
;----------------------------------------------------------------------
        LD        *(_seed$1),A

        ANDM      #-833,*(ST1)         
        ANDM      #-4,*(PMST)          
        RET      




	.sect	".text"
	.global	_Copy
;----------------------------------------------------------------------
;  38 | void Copy(                                                             
;  39 | Word16 x[],      /* (i)   : input vector   */                          
;  40 | Word16 y[],      /* (o)   : output vector  */                          
;  41 | Word16 L         /* (i)   : vector length  */                          
;  42 | )                                                                      
;----------------------------------------------------------------------
_Copy:
;----------------------------------------------------------------------
;  44 | Word16 i;                                                              
;----------------------------------------------------------------------
        SSBX      SXM
        NOP
        LD        *SP(2),B
        MVDK      *SP(1),*(AR3)
;----------------------------------------------------------------------
;  46 | for (i = 0; i < L; i++)                                                
;----------------------------------------------------------------------
        BC        L4,BLEQ               ; |46| 
        STLM      A,AR2
        SUB       #1,B,A
        STLM      A,BRC
        NOP
        RPTB      L4-1
L3:    
        MVDD      *AR2+,*AR3+           ; |47| 
L4:    
        RET



⌨️ 快捷键说明

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