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

📄 other_my_assemble.asm

📁 31阶滤波加抽取的DSP实现
💻 ASM
📖 第 1 页 / 共 3 页
字号:
;******************************************************************************
;* TMS320C6x C/C++ Codegen                                          PC v5.1.0 *
;* Date/Time created: Tue Sep 26 10:39:06 2006                                *
;******************************************************************************

;******************************************************************************
;* GLOBAL FILE PARAMETERS                                                     *
;*                                                                            *
;*   Architecture      : TMS320C64xx                                          *
;*   Optimization      : Disabled                                             *
;*   Optimizing for    : Compile time, Ease of Development                    *
;*                       Based on options: no -o, no -ms                      *
;*   Endian            : Little                                               *
;*   Interrupt Thrshld : Disabled                                             *
;*   Data Access Model : Far Aggregate Data                                   *
;*   Pipelining        : Disabled                                             *
;*   Memory Aliases    : Presume are aliases (pessimistic)                    *
;*   Debug Info        : DWARF Debug                                          *
;*                                                                            *
;******************************************************************************

	.asg	A15, FP
	.asg	B14, DP
	.asg	B15, SP
	.global	$bss


DW$CU	.dwtag  DW_TAG_compile_unit
	.dwattr DW$CU, DW_AT_name("serial_asm")
	.dwattr DW$CU, DW_AT_producer("TMS320C6x C/C++ Codegen PC v5.1.0 Copyright (c) 1996-2005 Texas Instruments Incorporated")
	.dwattr DW$CU, DW_AT_stmt_list(0x00)
	.dwattr DW$CU, DW_AT_TI_VERSION(0x01)
	.sect	".text"
      .global _MyFIR
	.sect	".text"

DW$1	.dwtag  DW_TAG_subprogram, DW_AT_name("MyFIR"), DW_AT_symbol_name("_MyFIR")
	.dwattr DW$1, DW_AT_low_pc(_MyFIR)
	.dwattr DW$1, DW_AT_high_pc(0x00)
	.dwattr DW$1, DW_AT_begin_file("other_My_Assemble.sa")
	.dwattr DW$1, DW_AT_begin_line(0x03)
	.dwattr DW$1, DW_AT_begin_column(0x01)
	.dwpsn	"other_My_Assemble.sa",3,1

	.dwfde DW$CIE

;******************************************************************************
;* FUNCTION NAME: _MyFIR                                                      *
;*                                                                            *
;*   Regs Modified     : A0,A1,A3,A4,A5,A6,A7,A8,A9,B0,B4,B5,B6,B7,B8,B9,A16, *
;*                           A17,A18,A19,A20,B16,B17,B18                      *
;*   Regs Used         : A0,A1,A3,A4,A5,A6,A7,A8,A9,B0,B3,B4,B5,B6,B7,B8,B9,  *
;*                           A16,A17,A18,A19,A20,B16,B17,B18                  *
;******************************************************************************
_MyFIR:

	.map	NowPtrCoeff/A3
	.map	start/B5
	.map	returnvalue/B4
	.map	returnvalue'/A4
	.map	Buffer/B18
	.map	Offset/B8
	.map	end/B7
	.map	FZ/A7
	.map	product1/B6
	.map	product1'/B17
	.map	product2/A4
	.map	product2'/A5
	.map	PEIZHI1/A19
	.map	PEIZHI2/A20
	.map	count/A0
	.map	sum1/B6
	.map	sum1'/B18
	.map	sum2/A4
	.map	sum2'/A18
	.map	temp/B7
	.map	result/A3
	.map	InputLength/A1
	.map	InputLength'/A8
	.map	Offindex/B6
	.map	new1/B17
	.map	new1$1/B16
	.map	new1$2/A8
	.map	new1$3/A5
	.map	ptrBuffer/B9
	.map	ptrBuffer'/A4
	.map	new2/B16
	.map	new2'/B6
	.map	new2''/A5
	.map	ptrInput/A6
	.map	Coeff/A4
	.map	Coeff'/A5
	.map	ANX/A16
	.map	ptrResult/A17
	.map	ptrResult'/B8
	.map	cond/B0
	.map	FUZHU/A9
	.map	ptrCoeff/B4

;** --------------------------------------------------------------------------*
; _MyFIR:     .cproc ptrBuffer, ptrCoeff, ptrInput, Offindex, InputLength, ptrResult
;             .reg  Offset, NowPtrCoeff,start,end,cond,temp
; 	        .reg PEIZHI1,PEIZHI2,FUZHU,ANX,new1,new2,result,FZ
; 	        .reg Buffer,Coeff,product1,product2,sum1,sum2,count,returnvalue
	.dwcfa	0x0e, 0
	.dwcfa	0x09, 126, 19
DW$2	.dwtag  DW_TAG_variable, DW_AT_name("NowPtrCoeff"), DW_AT_symbol_name("NowPtrCoeff")
	.dwattr DW$2, DW_AT_type(*DW$T$10)
	.dwattr DW$2, DW_AT_location[DW_OP_reg3]
DW$3	.dwtag  DW_TAG_variable, DW_AT_name("start"), DW_AT_symbol_name("start")
	.dwattr DW$3, DW_AT_type(*DW$T$10)
	.dwattr DW$3, DW_AT_location[DW_OP_reg21]
DW$4	.dwtag  DW_TAG_variable, DW_AT_name("returnvalue"), DW_AT_symbol_name("returnvalue")
	.dwattr DW$4, DW_AT_type(*DW$T$10)
	.dwattr DW$4, DW_AT_location[DW_OP_reg20]
DW$5	.dwtag  DW_TAG_variable, DW_AT_name("returnvalue"), DW_AT_symbol_name("returnvalue")
	.dwattr DW$5, DW_AT_type(*DW$T$10)
	.dwattr DW$5, DW_AT_location[DW_OP_reg4]
DW$6	.dwtag  DW_TAG_variable, DW_AT_name("Buffer"), DW_AT_symbol_name("Buffer")
	.dwattr DW$6, DW_AT_type(*DW$T$10)
	.dwattr DW$6, DW_AT_location[DW_OP_regx 0x37]
DW$7	.dwtag  DW_TAG_variable, DW_AT_name("Offset"), DW_AT_symbol_name("Offset")
	.dwattr DW$7, DW_AT_type(*DW$T$10)
	.dwattr DW$7, DW_AT_location[DW_OP_reg24]
DW$8	.dwtag  DW_TAG_variable, DW_AT_name("end"), DW_AT_symbol_name("end")
	.dwattr DW$8, DW_AT_type(*DW$T$10)
	.dwattr DW$8, DW_AT_location[DW_OP_reg23]
DW$9	.dwtag  DW_TAG_variable, DW_AT_name("FZ"), DW_AT_symbol_name("FZ")
	.dwattr DW$9, DW_AT_type(*DW$T$10)
	.dwattr DW$9, DW_AT_location[DW_OP_reg7]
DW$10	.dwtag  DW_TAG_variable, DW_AT_name("product1"), DW_AT_symbol_name("product1")
	.dwattr DW$10, DW_AT_type(*DW$T$10)
	.dwattr DW$10, DW_AT_location[DW_OP_reg22]
DW$11	.dwtag  DW_TAG_variable, DW_AT_name("product2"), DW_AT_symbol_name("product2")
	.dwattr DW$11, DW_AT_type(*DW$T$10)
	.dwattr DW$11, DW_AT_location[DW_OP_reg4]
DW$12	.dwtag  DW_TAG_variable, DW_AT_name("PEIZHI1"), DW_AT_symbol_name("PEIZHI1")
	.dwattr DW$12, DW_AT_type(*DW$T$10)
	.dwattr DW$12, DW_AT_location[DW_OP_regx 0x28]
DW$13	.dwtag  DW_TAG_variable, DW_AT_name("PEIZHI2"), DW_AT_symbol_name("PEIZHI2")
	.dwattr DW$13, DW_AT_type(*DW$T$10)
	.dwattr DW$13, DW_AT_location[DW_OP_regx 0x29]
DW$14	.dwtag  DW_TAG_variable, DW_AT_name("count"), DW_AT_symbol_name("count")
	.dwattr DW$14, DW_AT_type(*DW$T$10)
	.dwattr DW$14, DW_AT_location[DW_OP_reg0]
DW$15	.dwtag  DW_TAG_variable, DW_AT_name("sum1"), DW_AT_symbol_name("sum1")
	.dwattr DW$15, DW_AT_type(*DW$T$10)
	.dwattr DW$15, DW_AT_location[DW_OP_reg22]
DW$16	.dwtag  DW_TAG_variable, DW_AT_name("sum2"), DW_AT_symbol_name("sum2")
	.dwattr DW$16, DW_AT_type(*DW$T$10)
	.dwattr DW$16, DW_AT_location[DW_OP_reg4]
DW$17	.dwtag  DW_TAG_variable, DW_AT_name("temp"), DW_AT_symbol_name("temp")
	.dwattr DW$17, DW_AT_type(*DW$T$10)
	.dwattr DW$17, DW_AT_location[DW_OP_reg23]
DW$18	.dwtag  DW_TAG_variable, DW_AT_name("result"), DW_AT_symbol_name("result")
	.dwattr DW$18, DW_AT_type(*DW$T$10)
	.dwattr DW$18, DW_AT_location[DW_OP_reg3]
DW$19	.dwtag  DW_TAG_variable, DW_AT_name("InputLength"), DW_AT_symbol_name("InputLength")
	.dwattr DW$19, DW_AT_type(*DW$T$10)
	.dwattr DW$19, DW_AT_location[DW_OP_reg1]
DW$20	.dwtag  DW_TAG_variable, DW_AT_name("Offindex"), DW_AT_symbol_name("Offindex")
	.dwattr DW$20, DW_AT_type(*DW$T$10)
	.dwattr DW$20, DW_AT_location[DW_OP_reg22]
DW$21	.dwtag  DW_TAG_variable, DW_AT_name("new1"), DW_AT_symbol_name("new1")
	.dwattr DW$21, DW_AT_type(*DW$T$10)
	.dwattr DW$21, DW_AT_location[DW_OP_regx 0x36]
DW$22	.dwtag  DW_TAG_variable, DW_AT_name("ptrBuffer"), DW_AT_symbol_name("ptrBuffer")
	.dwattr DW$22, DW_AT_type(*DW$T$10)
	.dwattr DW$22, DW_AT_location[DW_OP_reg25]
DW$23	.dwtag  DW_TAG_variable, DW_AT_name("new2"), DW_AT_symbol_name("new2")
	.dwattr DW$23, DW_AT_type(*DW$T$10)
	.dwattr DW$23, DW_AT_location[DW_OP_regx 0x35]
DW$24	.dwtag  DW_TAG_variable, DW_AT_name("ptrInput"), DW_AT_symbol_name("ptrInput")
	.dwattr DW$24, DW_AT_type(*DW$T$10)
	.dwattr DW$24, DW_AT_location[DW_OP_reg6]
DW$25	.dwtag  DW_TAG_variable, DW_AT_name("Coeff"), DW_AT_symbol_name("Coeff")
	.dwattr DW$25, DW_AT_type(*DW$T$10)
	.dwattr DW$25, DW_AT_location[DW_OP_reg4]
DW$26	.dwtag  DW_TAG_variable, DW_AT_name("ANX"), DW_AT_symbol_name("ANX")
	.dwattr DW$26, DW_AT_type(*DW$T$10)
	.dwattr DW$26, DW_AT_location[DW_OP_regx 0x25]
DW$27	.dwtag  DW_TAG_variable, DW_AT_name("ptrResult"), DW_AT_symbol_name("ptrResult")
	.dwattr DW$27, DW_AT_type(*DW$T$10)
	.dwattr DW$27, DW_AT_location[DW_OP_regx 0x26]
DW$28	.dwtag  DW_TAG_variable, DW_AT_name("ptrResult"), DW_AT_symbol_name("ptrResult")
	.dwattr DW$28, DW_AT_type(*DW$T$10)
	.dwattr DW$28, DW_AT_location[DW_OP_reg24]
DW$29	.dwtag  DW_TAG_variable, DW_AT_name("cond"), DW_AT_symbol_name("cond")
	.dwattr DW$29, DW_AT_type(*DW$T$10)
	.dwattr DW$29, DW_AT_location[DW_OP_reg16]
DW$30	.dwtag  DW_TAG_variable, DW_AT_name("FUZHU"), DW_AT_symbol_name("FUZHU")
	.dwattr DW$30, DW_AT_type(*DW$T$10)
	.dwattr DW$30, DW_AT_location[DW_OP_reg9]
DW$31	.dwtag  DW_TAG_variable, DW_AT_name("ptrCoeff"), DW_AT_symbol_name("ptrCoeff")
	.dwattr DW$31, DW_AT_type(*DW$T$10)
	.dwattr DW$31, DW_AT_location[DW_OP_reg20]
           MV      .L1X    ptrResult',ptrResult ; |3| 
	.dwpsn	"other_My_Assemble.sa",2,1
      
	.dwpsn	"other_My_Assemble.sa",9,1
           MVK     .S2     0x4000,Offset     ; |9| 
	.dwpsn	"other_My_Assemble.sa",10,1
           MVKLH   .S2     0x4000,Offset     ; |10| 
	.dwpsn	"other_My_Assemble.sa",11,1
           MVK     .S1     0xffff,ANX        ; |11| 
	.dwpsn	"other_My_Assemble.sa",12,1
           MVKLH   .S1     0x0,ANX           ; |12| 
	.dwpsn	"other_My_Assemble.sa",13,1
           MVK     .S1     0xff,FUZHU        ; |13| 
	.dwpsn	"other_My_Assemble.sa",14,1
           MVKLH   .S1     0x0,FUZHU         ; |14| 
	.dwpsn	"other_My_Assemble.sa",15,1
           MVK     .S1     0xff00,FZ         ; |15| 
	.dwpsn	"other_My_Assemble.sa",16,1
           MVKLH   .S1     0xffff,FZ         ; |16| 
	.dwpsn	"other_My_Assemble.sa",17,1
           MV      .L2X    ptrBuffer',start  ; |17| 
	.dwpsn	"other_My_Assemble.sa",18,1
           MVK     .S2     0x3c,temp         ; |18| 
	.dwpsn	"other_My_Assemble.sa",19,1
           ADD     .L2X    ptrBuffer',temp,end ; |19| 
	.dwpsn	"other_My_Assemble.sa",20,1
           ADD     .L2X    ptrBuffer',Offindex,ptrBuffer ; |20| 
	.dwpsn	"other_My_Assemble.sa",21,1
           SHRU    .S1     InputLength',0x2,InputLength ; |21| 
	.dwpsn	"other_My_Assemble.sa",23,1
;** --------------------------------------------------------------------------*
;**   BEGIN LOOP LEN
;** --------------------------------------------------------------------------*
LEN:    
DW$L$_MyFIR$2$B:
; LEN:  .trip 64,64
	.dwpsn	"other_My_Assemble.sa",25,1
           MV      .L1X    ptrCoeff,NowPtrCoeff ; |25| 
	.dwpsn	"other_My_Assemble.sa",26,1
           LDW     .D1T1   *ptrInput++,new1$3 ; |26| 
           NOP             4
	.dwpsn	"other_My_Assemble.sa",27,1
           LDW     .D1T1   *NowPtrCoeff++,Coeff ; |27| 
           NOP             4
	.dwpsn	"other_My_Assemble.sa",29,1
           ZERO    .L2     sum1'             ; |29| 
	.dwpsn	"other_My_Assemble.sa",30,1
           ZERO    .L1     sum2'             ; |30| 
	.dwpsn	"other_My_Assemble.sa",32,1
	.dwpsn	"other_My_Assemble.sa",34,1
           AND     .L1     new1$3,ANX,new1$2 ; |34| 
	.dwpsn	"other_My_Assemble.sa",35,1
           SHRU    .S1     new2'',0x10,new2'' ; |35| 
	.dwpsn	"other_My_Assemble.sa",37,1
           AND     .L1     new1$2,FUZHU,PEIZHI1 ; |37| 
	.dwpsn	"other_My_Assemble.sa",38,1
           AND     .L1     new2'',FUZHU,PEIZHI2 ; |38| 
	.dwpsn	"other_My_Assemble.sa",40,1
           SHL     .S1     PEIZHI1,0x18,PEIZHI1 ; |40| 
	.dwpsn	"other_My_Assemble.sa",41,1
           SHL     .S1     PEIZHI2,0x18,PEIZHI2 ; |41| 
	.dwpsn	"other_My_Assemble.sa",42,1
           AND     .L1     new1$2,FZ,new1$2  ; |42| 
	.dwpsn	"other_My_Assemble.sa",43,1
           AND     .L1     new2'',FZ,new2''  ; |43| 
	.dwpsn	"other_My_Assemble.sa",45,1
           OR      .L1     new1$2,PEIZHI1,new1$2 ; |45| 
	.dwpsn	"other_My_Assemble.sa",46,1
           OR      .L1     new2'',PEIZHI2,new2'' ; |46| 
	.dwpsn	"other_My_Assemble.sa",48,1
           SHRU    .S2X    new1$2,0x1,new1$1 ; |48| 
	.dwpsn	"other_My_Assemble.sa",49,1
           SHRU    .S2X    new2'',0x1,new2'  ; |49| 
	.dwpsn	"other_My_Assemble.sa",51,1
           SUB2    .L2     Offset,new1$1,new1 ; |51| 
	.dwpsn	"other_My_Assemble.sa",52,1
           SUB2    .L2     new2',Offset,new2 ; |52| 

⌨️ 快捷键说明

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