mpy32.asm
来自「算术运算在我们普通的计算机上很容易实现!但是在我们的DSP上」· 汇编 代码 · 共 38 行
ASM
38 行
.title "MPY32"
.mmregs
.def start,_c_int00
.bss x1 , 1
.bss x0 ,1
.bss y1 , 1
.bss y0 ,1
.bss w3 , 1
.bss w2 , 1
.bss w1 , 1
.bss w0 , 1
table .long -001A002BH,003C004DH
.text
_c_int00
b start
nop
nop
start: LD #x1 ,DP
STM #x1,AR1
RPT #3
MVPD table,*AR1+
STM #x0,AR2 ;AR2 = X0 addr
STM #y0,AR3 ;AR3 = Y0 addr
LD *AR2,T ;T = X0
MPYU *AR3-,A ;A = X0*Y0
STL A,w0 ;save W0
LD A,- 16,A ;A = A >> 16
MACSU *AR2-,*AR3+,A ;A = X0*Y0>>16 + X0*Y1
MACSU *AR3-,*AR2,A ;A = X0*Y0>>16 + X0*Y1 + X1*Y0
STL A,w1 ;save W1
LD A,- 16,A ;A = A >> 16
MAC *AR2,*AR3,A ;A = (X0*Y1 + X1*Y0)>>16 + X1*Y1
STL A,w2 ;save W2
STH A,w3 ;save W3
END: B END
.end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?