📄 predictor_pole.s
字号:
;*********************************************
;* 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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -