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

📄 main.asm

📁 自己编写的任意矩阵相乘的DSP程序
💻 ASM
📖 第 1 页 / 共 5 页
字号:
	.field  	1,16			; _B[29][2] @ 4672
	.field  	1,16			; _B[29][3] @ 4688
	.field  	1,16			; _B[29][4] @ 4704
	.field  	1,16			; _B[29][5] @ 4720
	.field  	1,16			; _B[29][6] @ 4736
	.field  	1,16			; _B[29][7] @ 4752
	.field  	1,16			; _B[29][8] @ 4768
	.field  	2,16			; _B[29][9] @ 4784
IR_2:	.set	600

	.sect	".cinit"
	.align	8
	.field  	IR_3,32
	.field  	_max+0,32
	.field  	0,32			; _max[0] @ 0
IR_3:	.set	4


DW$1	.dwtag  DW_TAG_subprogram, DW_AT_name("printf"), DW_AT_symbol_name("_printf")
	.dwattr DW$1, DW_AT_type(*DW$T$10)
	.dwattr DW$1, DW_AT_declaration(0x01)
	.dwattr DW$1, DW_AT_external(0x01)
DW$2	.dwtag  DW_TAG_formal_parameter, DW_AT_type(*DW$T$58)
DW$3	.dwtag  DW_TAG_unspecified_parameters
	.dwendtag DW$1


DW$4	.dwtag  DW_TAG_subprogram, DW_AT_name("matrix_mpys"), DW_AT_symbol_name("_matrix_mpys")
	.dwattr DW$4, DW_AT_type(*DW$T$10)
	.dwattr DW$4, DW_AT_declaration(0x01)
	.dwattr DW$4, DW_AT_external(0x01)
	.global	_A
_A:	.usect	".far",600,8
DW$5	.dwtag  DW_TAG_variable, DW_AT_name("A"), DW_AT_symbol_name("_A")
	.dwattr DW$5, DW_AT_location[DW_OP_addr _A]
	.dwattr DW$5, DW_AT_type(*DW$T$48)
	.dwattr DW$5, DW_AT_external(0x01)
	.global	_B
_B:	.usect	".far",600,8
DW$6	.dwtag  DW_TAG_variable, DW_AT_name("B"), DW_AT_symbol_name("_B")
	.dwattr DW$6, DW_AT_location[DW_OP_addr _B]
	.dwattr DW$6, DW_AT_type(*DW$T$50)
	.dwattr DW$6, DW_AT_external(0x01)
	.global	_C
_C:	.usect	".far",400,8
DW$7	.dwtag  DW_TAG_variable, DW_AT_name("C"), DW_AT_symbol_name("_C")
	.dwattr DW$7, DW_AT_location[DW_OP_addr _C]
	.dwattr DW$7, DW_AT_type(*DW$T$54)
	.dwattr DW$7, DW_AT_external(0x01)
	.global	_max
_max:	.usect	".far",12,8
DW$8	.dwtag  DW_TAG_variable, DW_AT_name("max"), DW_AT_symbol_name("_max")
	.dwattr DW$8, DW_AT_location[DW_OP_addr _max]
	.dwattr DW$8, DW_AT_type(*DW$T$63)
	.dwattr DW$8, DW_AT_external(0x01)
;	D:\CCStudio_v3.1\C6000\cgtools\bin\opt6x.exe C:\DOCUME~1\Linda\LOCALS~1\Temp\TI62010 C:\DOCUME~1\Linda\LOCALS~1\Temp\TI6204 
	.sect	".text"
	.global	_matrix_mpyc

DW$9	.dwtag  DW_TAG_subprogram, DW_AT_name("matrix_mpyc"), DW_AT_symbol_name("_matrix_mpyc")
	.dwattr DW$9, DW_AT_low_pc(_matrix_mpyc)
	.dwattr DW$9, DW_AT_high_pc(0x00)
	.dwattr DW$9, DW_AT_begin_file("D:\CCStudio_v3.1\MyProjects\matrix\matrix_mpyc.c")
	.dwattr DW$9, DW_AT_begin_line(0x05)
	.dwattr DW$9, DW_AT_begin_column(0x06)
	.dwpsn	"D:\CCStudio_v3.1\MyProjects\matrix\matrix_mpyc.c",6,1

	.dwfde DW$CIE

;******************************************************************************
;* FUNCTION NAME: _matrix_mpyc                                                *
;*                                                                            *
;*   Regs Modified     : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,   *
;*                           A15,B0,B1,B2,B3,B4,B5,B6,B7,B8,B9,B10,B11,B12,   *
;*                           B13,DP,SP,A16,A17,A18,A19,A20,A21,A22,A23,A24,   *
;*                           A25,A26,A27,A28,A29,A30,A31,B16,B17,B18,B19,B20, *
;*                           B21,B22,B23,B24,B25,B26,B27,B28,B29,B30,B31      *
;*   Regs Used         : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,   *
;*                           A15,B0,B1,B2,B3,B4,B5,B6,B7,B8,B9,B10,B11,B12,   *
;*                           B13,DP,SP,A16,A17,A18,A19,A20,A21,A22,A23,A24,   *
;*                           A25,A26,A27,A28,A29,A30,A31,B16,B17,B18,B19,B20, *
;*                           B21,B22,B23,B24,B25,B26,B27,B28,B29,B30,B31      *
;*   Local Frame Size  : 0 Args + 164 Auto + 44 Save = 208 byte               *
;******************************************************************************

;******************************************************************************
;*                                                                            *
;* Using -g (debug) with optimization (-o3) may disable key optimizations!    *
;*                                                                            *
;******************************************************************************
_matrix_mpyc:
;** --------------------------------------------------------------------------*
	.dwcfa	0x0e, 0
	.dwcfa	0x09, 126, 19

           ADDK    .S2     -208,SP           ; |6| 
||         MV      .L1X    SP,A31            ; |6| 

           STW     .D2T1   A15,*+SP(208)
	.dwcfa	0x80, 15, 0
           STDW    .D2T2   B13:B12,*+SP(200)
	.dwcfa	0x80, 28, 1
	.dwcfa	0x80, 29, 2
           STDW    .D2T2   B11:B10,*+SP(192)
	.dwcfa	0x80, 26, 3
	.dwcfa	0x80, 27, 4
           STW     .D2T2   B3,*+SP(188)
	.dwcfa	0x80, 19, 5
           STW     .D1T1   A14,*-A31(24)
	.dwcfa	0x80, 14, 6
           STDW    .D1T1   A13:A12,*-A31(32)
	.dwcfa	0x80, 12, 7
	.dwcfa	0x80, 13, 8
           STDW    .D1T1   A11:A10,*-A31(40)
	.dwcfa	0x80, 10, 9
	.dwcfa	0x80, 11, 10
DW$10	.dwtag  DW_TAG_formal_parameter, DW_AT_name("A"), DW_AT_symbol_name("_A")
	.dwattr DW$10, DW_AT_type(*DW$T$20)
	.dwattr DW$10, DW_AT_location[DW_OP_reg4]
DW$11	.dwtag  DW_TAG_formal_parameter, DW_AT_name("B"), DW_AT_symbol_name("_B")
	.dwattr DW$11, DW_AT_type(*DW$T$22)
	.dwattr DW$11, DW_AT_location[DW_OP_reg20]
DW$12	.dwtag  DW_TAG_formal_parameter, DW_AT_name("C"), DW_AT_symbol_name("_C")
	.dwattr DW$12, DW_AT_type(*DW$T$24)
	.dwattr DW$12, DW_AT_location[DW_OP_reg6]
DW$13	.dwtag  DW_TAG_formal_parameter, DW_AT_name("max"), DW_AT_symbol_name("_max")
	.dwattr DW$13, DW_AT_type(*DW$T$25)
	.dwattr DW$13, DW_AT_location[DW_OP_reg22]
DW$14	.dwtag  DW_TAG_variable, DW_AT_name("max"), DW_AT_symbol_name("_max")
	.dwattr DW$14, DW_AT_type(*DW$T$55)
	.dwattr DW$14, DW_AT_location[DW_OP_reg18]
DW$15	.dwtag  DW_TAG_variable, DW_AT_name("C"), DW_AT_symbol_name("_C")
	.dwattr DW$15, DW_AT_type(*DW$T$53)
	.dwattr DW$15, DW_AT_location[DW_OP_breg31 144]
DW$16	.dwtag  DW_TAG_variable, DW_AT_name("B"), DW_AT_symbol_name("_B")
	.dwattr DW$16, DW_AT_type(*DW$T$49)
	.dwattr DW$16, DW_AT_location[DW_OP_breg31 4]
DW$17	.dwtag  DW_TAG_variable, DW_AT_name("A"), DW_AT_symbol_name("_A")
	.dwattr DW$17, DW_AT_type(*DW$T$47)
	.dwattr DW$17, DW_AT_location[DW_OP_reg21]
DW$18	.dwtag  DW_TAG_variable, DW_AT_name("i"), DW_AT_symbol_name("_i")
	.dwattr DW$18, DW_AT_type(*DW$T$10)
	.dwattr DW$18, DW_AT_location[DW_OP_reg17]
DW$19	.dwtag  DW_TAG_variable, DW_AT_name("w"), DW_AT_symbol_name("_w")
	.dwattr DW$19, DW_AT_type(*DW$T$10)
	.dwattr DW$19, DW_AT_location[DW_OP_regx 0x44]
DW$20	.dwtag  DW_TAG_variable, DW_AT_name("sum"), DW_AT_symbol_name("_sum")
	.dwattr DW$20, DW_AT_type(*DW$T$10)
	.dwattr DW$20, DW_AT_location[DW_OP_reg30]
           MVK     .S1     360,A5

           MVK     .S1     380,A5
||         ADD     .L1X    A5,B4,A7

           MVK     .S1     400,A5
||         ADD     .L1X    A5,B4,A7
||         STW     .D2T1   A7,*+SP(12)

           MVK     .S1     420,A5
||         ADD     .L1X    A5,B4,A7
||         STW     .D2T1   A7,*+SP(16)

           MVK     .S1     440,A5
||         ADD     .L1X    A5,B4,A7
||         STW     .D2T1   A7,*+SP(20)

           ADD     .L1X    A5,B4,A7
||         STW     .D2T1   A7,*+SP(24)

           STW     .D2T1   A7,*+SP(28)
||         MVK     .S1     460,A5
||         MV      .L2X    A4,B5             ; |6| 

           ADDAD   .D2     B5,4,B7
||         ADD     .L1X    A5,B4,A7

           STW     .D2T1   A7,*+SP(32)

           ADDAD   .D2     B5,6,B8
||         MVK     .S1     480,A5
||         MV      .L2     B4,B16            ; |6| 

           ADDAD   .D2     B16,20,B17
||         ADD     .L1X    A5,B4,A7

           STW     .D2T1   A7,*+SP(36)

           ADDAD   .D2     B16,30,B6
||         MVK     .S1     520,A5
||         MV      .L2     B6,B2             ; |6| 

           ADD     .D2     B5,16,B5
||         ADD     .L1X    A5,B4,A7

           STW     .D2T1   A7,*+SP(44)

           STW     .D2T2   B17,*+SP(72)
||         MVK     .S1     340,A5

           STW     .D2T2   B7,*+SP(40)
||         ADD     .L1X    A5,B4,A7

           STW     .D2T1   A7,*+SP(48)

           STW     .D2T2   B6,*+SP(80)
||         MVK     .S1     580,A5

           STW     .D2T2   B5,*+SP(56)
||         ADD     .L1X    A5,B4,A7

           STW     .D2T1   A7,*+SP(60)
           ADDAD   .D2     B16,15,B17

           STW     .D2T2   B4,*+SP(4)        ; |6| 
||         MVK     .S2     560,B7

           STW     .D2T2   B8,*+SP(52)
||         MVK     .S1     320,A5
||         ADD     .L2     B7,B4,B7

           STW     .D2T2   B7,*+SP(84)
||         MVK     .S1     300,A5
||         ADD     .L1X    A5,B4,A7

           STW     .D2T1   A7,*+SP(64)
||         ADD     .L1X    A5,B4,A5

           STW     .D2T1   A5,*+SP(68)

           STW     .D2T1   A4,*+SP(8)        ; |6| 
||         MV      .L1X    B4,A3             ; |6| 

           LDW     .D2T2   *B2,B3
||         MVK     .S1     280,A3
||         ADDAD   .D1     A3,25,A7

           STW     .D2T1   A7,*+SP(76)
||         ADD     .L1X    A3,B4,A5
||         MVK     .S2     180,B6

           STW     .D2T1   A5,*+SP(88)
||         MVK     .S2     140,B5

           STW     .D2T2   B17,*+SP(92)
||         ADD     .L2     B5,B16,B6
||         ADD     .S2     B6,B16,B5

           STW     .D2T2   B6,*+SP(132)
||         MVK     .S2     500,B9
||         MV      .L1     A4,A8             ; |6| 

           STW     .D2T2   B5,*+SP(128)
||         MVK     .S1     260,A3
||         ADD     .D1     A8,24,A7
||         MVK     .S2     540,B8

           STW     .D2T1   A7,*+SP(96)
||         ADD     .L2     B8,B4,B4
||         ADD     .L1X    A3,B4,A5
||         ADD     .S2     B9,B4,B7

           STW     .D2T2   B4,*+SP(100)
           STW     .D2T1   A5,*+SP(108)
           STW     .D2T2   B7,*+SP(104)
           ADDAW   .D2     B16,25,B8

           ADDAD   .D2     B16,10,B4
||         ADDAD   .D1     A8,5,A7

           STW     .D2T1   A7,*+SP(116)
||         ADDAD   .D1     A8,7,A5
||         MVK     .S1     220,A3

           STW     .D2T1   A5,*+SP(140)
||         ADD     .L1X    A3,B16,A4
||         ADD     .S1     8,A4,A3

           STW     .D2T1   A4,*+SP(136)
           STW     .D2T1   A3,*+SP(120)
           STW     .D2T2   B8,*+SP(112)
           STW     .D2T2   B4,*+SP(124)
           STW     .D2T1   A6,*+SP(144)      ; |6| 
	.dwpsn	"D:\CCStudio_v3.1\MyProjects\matrix\matrix_mpyc.c",10,13
           MVK     .L2     0xa,B5            ; |10| 

           STW     .D2T2   B5,*+SP(152)      ; |10| 
||         ZERO    .L2     B4

           STW     .D2T2   B4,*+SP(148)      ; |10| 
	.dwpsn	"D:\CCStudio_v3.1\MyProjects\matrix\matrix_mpyc.c",10,9
           MVK     .L2     0x1,B1            ; |10| 
;** --------------------------------------------------------------------------*
L1:    
           LDNDW   .D1T1   *A3,A9:A8
           LDW     .D2T1   *+SP(96),A3
           LDW     .D2T2   *+SP(52),B16
           LDW     .D2T2   *+SP(8),B4
           LDW     .D2T2   *+SP(56),B31
;** --------------------------------------------------------------------------*
;**   BEGIN LOOP L2
;** --------------------------------------------------------------------------*
L2:    
DW$L$_matrix_mpyc$3$B:
           LDW     .D2T2   *+SP(40),B30
           LDNDW   .D1T1   *A3,A21:A20
           LDNDW   .D2T2   *B16,B27:B26
           LDW     .D2T2   *+SP(144),B20
           LDW     .D2T2   *+SP(148),B23
           LDW     .D2T1   *+SP(116),A30
           LDW     .D2T2   *+SP(4),B17

           LDW     .D2T1   *+SP(140),A18
||         MV      .L2     B26,B25

           LDNDW   .D2T2   *B31,B7:B6
           LDNDW   .D2T2   *B4,B9:B8

           LDNDW   .D2T2   *B30,B5:B4
||         MV      .L1     A20,A9

⌨️ 快捷键说明

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