predictor_pole.s

来自「zigbee 飞思卡尔 音频传输 基于ucos的所有源码」· S 代码 · 共 102 行

S
102
字号
;*********************************************
;* UESTC.
;* (c) Copyright 2006 UESTC.
;* ALL RIGHTS RESERVED.
;* Author:	Shuifen Li
;* Date:	2006.7
;*********************************************
;*********************************************
;* FILE NAME: predictor_pole.s
;*********************************************

            .global _predictor_pole
	        
	        .text
	        
_predictor_pole:

;---=Saving values of used registers and clearing the data registers=---
   
    lea	-56(a7),  a7
	movem.l	d1-d7/a0-a6,(a7) 
	
;---=loading useful parameters from stack=---
    
    move.l   60(a7),  a0   //a0--state_ptr
    
;---= begin main function =--

	move.l #0,acc
	move.l #0,macsr
	move.l #0,d6
	move.l #0,d4
	move.l #11,d3
	move.l a0,a1
	add.l #20,a0   //a0  a
	add.l #72,a1   //a1  sr
	move.l (a0)+,d0
	asr.l #2,d0
	move.l (a1)+,d1

nextsr0:
   	mac.l d1,d0,acc
//  	move.l accext01,d5
   	
   	move.l acc,d2
   	move.l #0,acc
   	
   	move.l macsr,d5
   	and.l #2,d5
   	beq nonof0
   	asr.l #1,d1
   	add.l #1,d6
   	bra nextsr0
nonof0:
	sub.l d6,d3

   	asr.l d3,d2
   	
	move.l d2,d4
	
	move.l (a0)+,d0
	asr.l #2,d0
	move.l (a1)+,d1
	
	move.l #0,d6
nextsr1:
   	mac.l d1,d0,acc
//  	move.l accext01,d5
   	
   	move.l acc,d2
   	move.l #0,acc
   	
   	move.l macsr,d5
   	and.l #2,d5
   	beq nonof1
   	asr.l #1,d1
   	add.l #1,d6
   	bra nextsr1
nonof1:
	sub.l d6,d3

   	asr.l d3,d2
   	
   	add.l d4,d2
   	
   	move.l d2,d0   	

/*  int a0;
	int a1;
	int sr0;
	int sr1;
	a0 = state_ptr->a[0] >> 2;
	a1 = state_ptr->a[1] >> 2;
	sr0 = a0 * state_ptr->sr[0] >> 11;
	sr1 = a1 * state_ptr->sr[1] >> 11;
	return(sr0 + sr1);	*/
	
;---= Push the Stack =---

	movem.l	(a7), d1-d7/a0-a6
	lea		56(a7), a7
	rts	

⌨️ 快捷键说明

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