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

📄 sine8_buf.asm

📁 产生正弦波 开发环境:code composer studio3.1 设置说明:project-build options-linker-stack size 5
💻 ASM
📖 第 1 页 / 共 3 页
字号:
;******************************************************************************
;* TMS320C6x C/C++ Codegen                                          PC v5.1.0 *
;* Date/Time created: Thu Apr 19 21:04:07 2007                                *
;******************************************************************************
	.compiler_opts --endian=little --mem_model:code=near --mem_model:data=far_aggregates --silicon_version=6200 

;******************************************************************************
;* GLOBAL FILE PARAMETERS                                                     *
;*                                                                            *
;*   Architecture      : TMS320C620x                                          *
;*   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("sine8_buf.c")
	.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)
;*****************************************************************************
;* CINIT RECORDS                                                             *
;*****************************************************************************
	.sect	".cinit"
	.align	8
	.field  	2,32
	.field  	_loop+0,32
	.field  	0,16			; _loop @ 0

	.sect	".cinit"
	.align	8
	.field  	IR_1,32
	.field  	_sine_table+0,32
	.field  	0,16			; _sine_table[0] @ 0
	.field  	707,16			; _sine_table[1] @ 16
	.field  	1000,16			; _sine_table[2] @ 32
	.field  	707,16			; _sine_table[3] @ 48
	.field  	0,16			; _sine_table[4] @ 64
	.field  	64829,16			; _sine_table[5] @ 80
	.field  	64536,16			; _sine_table[6] @ 96
	.field  	64829,16			; _sine_table[7] @ 112
IR_1:	.set	16

	.sect	".cinit"
	.align	8
	.field  	2,32
	.field  	_BUFFERLENGTH+0,32
	.field  	256,16			; _BUFFERLENGTH @ 0

	.sect	".cinit"
	.align	8
	.field  	2,32
	.field  	_i+0,32
	.field  	0,16			; _i @ 0


DW$1	.dwtag  DW_TAG_subprogram, DW_AT_name("output_sample"), DW_AT_symbol_name("_output_sample")
	.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_subprogram, DW_AT_name("comm_intr"), DW_AT_symbol_name("_comm_intr")
	.dwattr DW$2, DW_AT_type(*DW$T$10)
	.dwattr DW$2, DW_AT_declaration(0x01)
	.dwattr DW$2, DW_AT_external(0x01)
	.global	_loop
	.bss	_loop,2,2
DW$3	.dwtag  DW_TAG_variable, DW_AT_name("loop"), DW_AT_symbol_name("_loop")
	.dwattr DW$3, DW_AT_location[DW_OP_addr _loop]
	.dwattr DW$3, DW_AT_type(*DW$T$8)
	.dwattr DW$3, DW_AT_external(0x01)
	.global	_sine_table
_sine_table:	.usect	".far",16,4
DW$4	.dwtag  DW_TAG_variable, DW_AT_name("sine_table"), DW_AT_symbol_name("_sine_table")
	.dwattr DW$4, DW_AT_location[DW_OP_addr _sine_table]
	.dwattr DW$4, DW_AT_type(*DW$T$20)
	.dwattr DW$4, DW_AT_external(0x01)
	.global	_out_buffer
_out_buffer:	.usect	".far",512,4
DW$5	.dwtag  DW_TAG_variable, DW_AT_name("out_buffer"), DW_AT_symbol_name("_out_buffer")
	.dwattr DW$5, DW_AT_location[DW_OP_addr _out_buffer]
	.dwattr DW$5, DW_AT_type(*DW$T$21)
	.dwattr DW$5, DW_AT_external(0x01)
	.global	_BUFFERLENGTH
	.bss	_BUFFERLENGTH,2,2
DW$6	.dwtag  DW_TAG_variable, DW_AT_name("BUFFERLENGTH"), DW_AT_symbol_name("_BUFFERLENGTH")
	.dwattr DW$6, DW_AT_location[DW_OP_addr _BUFFERLENGTH]
	.dwattr DW$6, DW_AT_type(*DW$T$22)
	.dwattr DW$6, DW_AT_external(0x01)
	.global	_i
	.bss	_i,2,2
DW$7	.dwtag  DW_TAG_variable, DW_AT_name("i"), DW_AT_symbol_name("_i")
	.dwattr DW$7, DW_AT_location[DW_OP_addr _i]
	.dwattr DW$7, DW_AT_type(*DW$T$8)
	.dwattr DW$7, DW_AT_external(0x01)
;	C:\CCStudio_v3.1\C6000\cgtools\bin\acp6x.exe -@D:\DOCUME~1\n1\LOCALS~1\Temp\TI16012 
	.sect	".text"
	.global	_c_int11

DW$8	.dwtag  DW_TAG_subprogram, DW_AT_name("c_int11"), DW_AT_symbol_name("_c_int11")
	.dwattr DW$8, DW_AT_low_pc(_c_int11)
	.dwattr DW$8, DW_AT_high_pc(0x00)
	.dwattr DW$8, DW_AT_begin_file("sine8_buf.c")
	.dwattr DW$8, DW_AT_begin_line(0x0a)
	.dwattr DW$8, DW_AT_begin_column(0x10)
	.dwpsn	"sine8_buf.c",11,1

	.dwfde DW$CIE
;----------------------------------------------------------------------
;  10 | interrupt void c_int11()            //interrupt service routine        
;----------------------------------------------------------------------

;******************************************************************************
;* FUNCTION NAME: _c_int11                                                    *
;*                                                                            *
;*   Regs Modified     : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,B0,B1,B2,B3,B4,B5,B6,  *
;*                           B7,B8,B9,SP                                      *
;*   Regs Used         : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,B0,B1,B2,B3,B4,B5,B6,  *
;*                           B7,B8,B9,DP,SP                                   *
;*   Local Frame Size  : 0 Args + 0 Auto + 84 Save = 84 byte                  *
;******************************************************************************
_c_int11:
;** --------------------------------------------------------------------------*
	.dwcfa	0x0e, 0
	.dwcfa	0x09, 126, 19
           STW     .D2T2   B9,*SP--(88)      ; |11| 
           NOP             2
	.dwcfa	0x0e, 88
	.dwcfa	0x80, 25, 0
           STW     .D2T2   B8,*+SP(84)       ; |11| 
           NOP             2
	.dwcfa	0x80, 24, 1
           STW     .D2T2   B7,*+SP(80)       ; |11| 
           NOP             2
	.dwcfa	0x80, 23, 2
           STW     .D2T2   B6,*+SP(76)       ; |11| 
           NOP             2
	.dwcfa	0x80, 22, 3
           STW     .D2T2   B5,*+SP(72)       ; |11| 
           NOP             2
	.dwcfa	0x80, 21, 4
           STW     .D2T2   B4,*+SP(68)       ; |11| 
           NOP             2
	.dwcfa	0x80, 20, 5
           STW     .D2T2   B3,*+SP(64)       ; |11| 
           NOP             2
	.dwcfa	0x80, 19, 6
           STW     .D2T2   B2,*+SP(60)       ; |11| 
           NOP             2
	.dwcfa	0x80, 18, 7
           STW     .D2T2   B1,*+SP(56)       ; |11| 
           NOP             2
	.dwcfa	0x80, 17, 8
           STW     .D2T2   B0,*+SP(52)       ; |11| 
           NOP             2
	.dwcfa	0x80, 16, 9
           STW     .D2T1   A9,*+SP(48)       ; |11| 
           NOP             2
	.dwcfa	0x80, 9, 10
           STW     .D2T1   A8,*+SP(44)       ; |11| 
           NOP             2
	.dwcfa	0x80, 8, 11
           STW     .D2T1   A7,*+SP(40)       ; |11| 
           NOP             2
	.dwcfa	0x80, 7, 12
           STW     .D2T1   A6,*+SP(36)       ; |11| 
           NOP             2
	.dwcfa	0x80, 6, 13
           STW     .D2T1   A5,*+SP(32)       ; |11| 
           NOP             2
	.dwcfa	0x80, 5, 14
           STW     .D2T1   A4,*+SP(28)       ; |11| 
           NOP             2
	.dwcfa	0x80, 4, 15
           STW     .D2T1   A3,*+SP(24)       ; |11| 
           NOP             2
	.dwcfa	0x80, 3, 16
           STW     .D2T1   A2,*+SP(20)       ; |11| 
           NOP             2
	.dwcfa	0x80, 2, 17
           STW     .D2T1   A1,*+SP(16)       ; |11| 
           NOP             2
	.dwcfa	0x80, 1, 18
           STW     .D2T1   A0,*+SP(12)       ; |11| 
           NOP             2
	.dwcfa	0x80, 0, 19
	.dwpsn	"sine8_buf.c",12,3
;----------------------------------------------------------------------
;  12 | output_sample(sine_table[loop]);  //output each sine value             
;----------------------------------------------------------------------
           LDH     .D2T1   *+DP(_loop),A4    ; |12| 
           MVKL    .S1     _sine_table,A3    ; |12| 
           MVKH    .S1     _sine_table,A3    ; |12| 
           MVKL    .S2     RL0,B3            ; |12| 
           CALL    .S2     _output_sample    ; |12| 
           LDH     .D1T1   *+A3[A4],A4       ; |12| 
           MVKH    .S2     RL0,B3            ; |12| 
           NOP             3
RL0:       ; CALL OCCURS {_output_sample}    ; |12| 
	.dwpsn	"sine8_buf.c",13,3
;----------------------------------------------------------------------
;  13 | out_buffer[i] = sine_table[loop]; //output to buffer                   
;----------------------------------------------------------------------
           LDH     .D2T2   *+DP(_loop),B6    ; |13| 
           MVKL    .S2     _sine_table,B4    ; |13| 
           MVKH    .S2     _sine_table,B4    ; |13| 
           LDH     .D2T2   *+DP(_i),B5       ; |13| 
           NOP             1
           LDH     .D2T2   *+B4[B6],B6       ; |13| 
           MVKL    .S2     _out_buffer,B4    ; |13| 
           MVKH    .S2     _out_buffer,B4    ; |13| 
           NOP             2
           STH     .D2T2   B6,*+B4[B5]       ; |13| 
           NOP             2
	.dwpsn	"sine8_buf.c",14,3
;----------------------------------------------------------------------
;  14 | i++;                              //increment buffer count             
;----------------------------------------------------------------------
           LDH     .D2T2   *+DP(_i),B4       ; |14| 
           NOP             4
           ADD     .L2     1,B4,B4           ; |14| 
           STH     .D2T2   B4,*+DP(_i)       ; |14| 
           NOP             2
	.dwpsn	"sine8_buf.c",15,3
;----------------------------------------------------------------------
;  15 | if (i == BUFFERLENGTH) i = 0; //if bottom reinit buffer count          
;----------------------------------------------------------------------
           LDH     .D2T2   *+DP(_BUFFERLENGTH),B4 ; |15| 
           LDH     .D2T2   *+DP(_i),B5       ; |15| 
           NOP             4
           CMPEQ   .L2     B5,B4,B0          ; |15| 
   [!B0]   B       .S1     L1                ; |15| 
           NOP             5
           ; BRANCHCC OCCURS {L1}            ; |15| 
;** --------------------------------------------------------------------------*
	.dwpsn	"sine8_buf.c",15,26
           ZERO    .L2     B4                ; |15| 
           STH     .D2T2   B4,*+DP(_i)       ; |15| 
;** --------------------------------------------------------------------------*
L1:    
	.dwpsn	"sine8_buf.c",16,3
;----------------------------------------------------------------------
;  16 | if (loop < 7) ++loop;             //increment index loop               
;----------------------------------------------------------------------
           LDH     .D2T2   *+DP(_loop),B4    ; |16| 
           NOP             4
           CMPLT   .L2     B4,7,B0           ; |16| 
   [!B0]   B       .S1     L2                ; |16| 
           NOP             5
           ; BRANCHCC OCCURS {L2}            ; |16| 
;** --------------------------------------------------------------------------*
	.dwpsn	"sine8_buf.c",16,17
           LDH     .D2T2   *+DP(_loop),B4    ; |16| 
           B       .S1     L3                ; |16| 
           NOP             3
           ADD     .L2     1,B4,B4           ; |16| 
           STH     .D2T2   B4,*+DP(_loop)    ; |16| 
           ; BRANCH OCCURS {L3}              ; |16| 
;** --------------------------------------------------------------------------*
L2:    
	.dwpsn	"sine8_buf.c",17,8
;----------------------------------------------------------------------
;  17 | else loop = 0;                    //if end of buffer,reinit index      
;----------------------------------------------------------------------
           ZERO    .L2     B4                ; |17| 
           STH     .D2T2   B4,*+DP(_loop)    ; |17| 
           NOP             1
	.dwpsn	"sine8_buf.c",18,3
;----------------------------------------------------------------------
;  18 | return;                                                                
;----------------------------------------------------------------------
;** --------------------------------------------------------------------------*
L3:    
	.dwpsn	"sine8_buf.c",19,1
           LDW     .D2T2   *+SP(84),B8       ; |19| 
           NOP             4
	.dwcfa	0xc0, 24
           LDW     .D2T2   *+SP(80),B7       ; |19| 

⌨️ 快捷键说明

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