📄 linconv.asm
字号:
************************************************************
*Linear Convolution
*-----------------------------------------------------------
*Objective:
* Implement linear convolution by MACMZ
* Y = {10,8,6,4,2} LinConv {1,2,5,10}
*Syntax:
* MACMZ Smem,Cmem,ACx
* ACx = ACx + (Smem * Cmem) :: Delay(Smem)
*Memory:
* 0000h..005Fh: reserved for Memory-Mapped Register
* 1000h..14FFh: used as execute code
* 1800h..27FFh: used as Data space
*-----------------------------------------------------------
*By Jwusheng Hu, Tzung-Min Su, Wei-Han Liu, Ming-Chien Tsai
* CopyRight 2004/08/03
************************************************************
.def _c_int00
.mmregs
M .set 9
N .set 3
L .set 4
.data
H .word 18,-20,0
.word -31,-7,33
.word -31,21,-12
X .word 3,-48,-30,43, 3,-48
.word -30, 18,-48,-3,-30,18
.word -8, 17, 10,25, -8,17
.word 35, 34,-23,-5, 35,34
.word 3,-48,-30,43, 3,-48
.word -30, 18,-48,-3,-30,18
Y .word 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
K .word 3
.text
.c54cm_off
_c_int00
BCLR C54CM
BSET M40
AMOV #1800h,XDP
MOV #0,AR1
MOV #X,AR0
MOV #Y,AR2
MOV #K,AR3
MOV #M,BK03
MOV #1800h,BSA01
BSET AR1LC
LL:
MOV #(L-1),BRC0 ;BRC0 = 4
RPTB OLOOP-1
MOV #0,AC0
MOV #(N-1),BRC1 ;BRC1 = 3
RPTBLOCAL LOOP-1
RPT #N-1
MAC *AR0+,*AR1+,AC0 ;Linear Convolution
ADD #3,AR0;
LOOP:
MOV AC0,*AR2+ ;Z[i] = AC0
SUB #17,AR0
OLOOP:
ADD #3,AR0
SUB #1,K
;
BCC LL,*AR3!=#0
END:
B END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -