mtrans.asm
来自「CCS3.3自带的TI 5400系列DSP的dsplib文件。文档说明可以在TI」· 汇编 代码 · 共 78 行
ASM
78 行
;***********************************************************
; Version 2.20.01
;***********************************************************
;****************************************************************
; Function: mtrans
; Description: matrix transpose implementation
;
; Copyright Texas instruments Inc, 1998
;----------------------------------------------------------------
; Revision History:
; 1.00, A. Aboagye, 8/31/98 - Original release. Started from
; summer coop code
;****************************************************************
.mmregs
.if __far_mode
OFFSET .set 1
.else
OFFSET .set 0
.endif
.text
.def _mtrans
_mtrans:
PSHM AR1
PSHM ST0 ; 1 cycle
PSHM ST1 ; 1 cycle
RSBX OVA ; 1 cycle
RSBX OVB ; 1 cycle
FRAME -1
STLM A,AR2 ; AR2 -> input matrix
STL A,*SP(0) ; SP(0) = input matrix ptr
MVDK *SP(7+OFFSET), AR4 ; AR4 -> output matrix
; Set up for transpose
MVDK *SP(0),AR2 ; AR2 -> elements
LD *SP(5+OFFSET),A
STLM A, AR0
SUB #1,A
STLM A,BRC ; Init input row counter
LD *SP(6+OFFSET),A
SUB #1,A
STL A,*SP(6+OFFSET) ; SP(6+OFFSET) = input row size - 1
; Transpose using 2 nested loops
RPTB tra1end
tra1 MVDK *SP(6+OFFSET),AR1 ; Init input element counter
MVMM AR4, AR5 ; AR5 -> an output element
MAR *AR4+
tra2 MVDD *AR2+,*AR5
MAR *AR5+0
BANZ tra2,*AR1-
tra1end NOP
FRAME 1
LD #0, A ; 1 cycle
XC 1, AOV ; 1 cycle
LD #1, A ; 1 cycle
POPM ST1
POPM ST0
POPM AR1
.if __far_mode
FRET
.else
RET
.endif
;end of file. please do not remove. it is left here to ensure that no lines of code are removed by any editor
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?