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

📄 matrix_mpys.sa

📁 自己编写的任意矩阵相乘的DSP程序
💻 SA
字号:
      .global _matrix_mpys
      .text
_matrix_mpys:  .cproc a_mtrx,b_mtrx,c_mtrx,m,n,k,resultmax
      .reg src1,src2,dst,rst
      .reg i,z,mm,nn,kk
	  .reg temp1,temp2,temp3,temp4,temp5
	  .reg max,x,i_max,j_max
      .no_mdep

;reverse direction
      zero max
      mv m,mm
      mpy m,k,temp3
	  sub temp3,1,temp3   ;position storing
loop3:.trip 10
      mv k,kk
	  mvk 1,z
loop2:.trip 10
      mpy mm,n,temp1
	  sub temp1,1,temp1   ;position end of A[m][n]
	  mpy n,k,temp2
	  sub temp2,z,temp2
	  add z,1,z           ;position end of B[n][k]

      mv n,nn             ;number of dotp in loop1
	  zero i
	  zero rst
loop1:.trip 30
	  sub temp1,i,temp5      ;position src1

      mpy i,k,temp4
	  sub temp2,temp4,temp4  ;position src2

      ldh *a_mtrx[temp5],src1
	  ldh *b_mtrx[temp4],src2

      mpy src1,src2,dst
	  add dst,rst,rst

	  add i,1,i
	  sub nn,1,nn            ;number of loop1
	  [nn] b loop1

	  cmpgt rst,max,x
	  [x] mv rst,max         ;maximum number of C array
	  [x] mv mm,i_max
	  [x] mv kk,j_max        ;position of maximum number
      stw rst,*c_mtrx[temp3] ;store result
	  sub temp3,1,temp3
      sub kk,1,kk
	  [kk] b loop2

      sub mm,1,mm
	  [mm] b loop3

      stw max,*resultmax++	 ;store the max
	  stw i_max,*resultmax++
	  stw j_max,*resultmax++ ;store the position of the max

      .endproc

⌨️ 快捷键说明

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