📄 sine8_intr.asm
字号:
;******************************************************************************
;* TMS320C6x ANSI C Codegen Version 4.10 *
;* Date/Time created: Tue Oct 23 10:47:58 2001 *
;******************************************************************************
;******************************************************************************
;* 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 *
;* Memory Model : Small *
;* Calls to RTS : Near *
;* Pipelining : Disabled *
;* Memory Aliases : Presume are aliases (pessimistic) *
;* Debug Info : Debug *
;* *
;******************************************************************************
.asg A15, FP
.asg B14, DP
.asg B15, SP
.global $bss
.file "sine8_intr.c"
.sect ".cinit:c"
.align 8
.field (CIR - $) - 8, 32
.field _loop+0,32
.field 0,16 ; _loop @ 0
.sect ".text"
.global _loop
_loop: .usect ".bss:c",2,2
.sym _loop,_loop, 3, 2, 16
.sect ".cinit"
.align 8
.field IR_1,32
.field _sin_table+0,32
.field 0,16 ; _sin_table[0] @ 0
.field 707,16 ; _sin_table[1] @ 16
.field 1000,16 ; _sin_table[2] @ 32
.field 707,16 ; _sin_table[3] @ 48
.field 0,16 ; _sin_table[4] @ 64
.field 64829,16 ; _sin_table[5] @ 80
.field 64536,16 ; _sin_table[6] @ 96
.field 64829,16 ; _sin_table[7] @ 112
IR_1: .set 16
.sect ".text"
.global _sin_table
.bss _sin_table,16,4
.sym _sin_table,_sin_table, 51, 2, 128,, 8
.sect ".cinit:c"
.align 2
.field 10,16 ; _amplitude @ 0
.sect ".text"
.global _amplitude
_amplitude: .usect ".bss:c",2,2
.sym _amplitude,_amplitude, 3, 2, 16
; C:\TI\C6000\CGTOOLS\BIN\acp6x.exe -Ic:/ti/c6000/bios/include -Ic:/ti/c6000/rtdx/include -Ic:/ti/c6000/cgtools/include --keep_unneeded_types -m --i_output_file c:\windows\TEMP\TI327561_2 --template_info_file c:\windows\TEMP\TI327561_3 --object_file C:/ti/myprojects/sine8_intr/sine8_intr.obj --opt_shell 8 sine8_intr.c -g -k -s -frC:/ti/myprojects/sine8_intr -ic:/ti/c6000/bios/include -ic:/ti/c6000/rtdx/include -ic:/ti/c6000/cgtools/include sine8_intr.c
.sect ".text"
.global _c_int11
.sym _c_int11,_c_int11, 32, 2, 0
.func 8
;----------------------------------------------------------------------
; 8 | 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:
;** --------------------------------------------------------------------------*
.line 2
STW .D2T2 B9,*SP--(88) ; |9|
STW .D2T1 A0,*+SP(12) ; |9|
STW .D2T1 A1,*+SP(16) ; |9|
STW .D2T1 A2,*+SP(20) ; |9|
STW .D2T1 A3,*+SP(24) ; |9|
STW .D2T1 A4,*+SP(28) ; |9|
STW .D2T1 A5,*+SP(32) ; |9|
STW .D2T1 A6,*+SP(36) ; |9|
STW .D2T1 A7,*+SP(40) ; |9|
STW .D2T1 A8,*+SP(44) ; |9|
STW .D2T1 A9,*+SP(48) ; |9|
STW .D2T2 B0,*+SP(52) ; |9|
STW .D2T2 B1,*+SP(56) ; |9|
STW .D2T2 B2,*+SP(60) ; |9|
STW .D2T2 B3,*+SP(64) ; |9|
STW .D2T2 B4,*+SP(68) ; |9|
STW .D2T2 B5,*+SP(72) ; |9|
STW .D2T2 B6,*+SP(76) ; |9|
STW .D2T2 B7,*+SP(80) ; |9|
STW .D2T2 B8,*+SP(84) ; |9|
NOP 2
.line 3
;----------------------------------------------------------------------
; 10 | output_sample(sin_table[loop]*amplitude); //output each sine value
;----------------------------------------------------------------------
LDH .D2T2 *+DP(_loop),B5 ; |10|
MVK .S2 (_sin_table-$bss),B4 ; |10|
LDH .D2T1 *+DP(_amplitude),A0 ; |10|
ADD .S2 DP,B4,B4 ; |10|
MVKL .S2 RL0,B3 ; |10|
LDH .D2T2 *+B4[B5],B4 ; |10|
B .S1 _output_sample ; |10|
NOP 3
MPY .M1X A0,B4,A4 ; |10|
MVKH .S2 RL0,B3 ; |10|
RL0: ; CALL OCCURS ; |10|
.line 4
;----------------------------------------------------------------------
; 11 | if (loop < 7) ++loop; //increment index loop
;----------------------------------------------------------------------
LDH .D2T2 *+DP(_loop),B4 ; |11|
LDH .D2T2 *+DP(_loop),B5 ; |11|
NOP 3
CMPLT .L2 B4,7,B0 ; |11|
[!B0] B .S1 L1 ; |11|
ADD .D2 1,B5,B4 ; |11|
NOP 4
; BRANCH OCCURS ; |11|
;** --------------------------------------------------------------------------*
B .S1 L2 ; |11|
STH .D2T2 B4,*+DP(_loop) ; |11|
NOP 4
; BRANCH OCCURS ; |11|
;** --------------------------------------------------------------------------*
L1:
.line 5
;----------------------------------------------------------------------
; 12 | else loop = 0; //reinit index @ end of buffer
;----------------------------------------------------------------------
ZERO .D2 B4 ; |12|
STH .D2T2 B4,*+DP(_loop) ; |12|
NOP 2
.line 6
;----------------------------------------------------------------------
; 13 | return; //return from interrupt
;----------------------------------------------------------------------
;** --------------------------------------------------------------------------*
L2:
.line 7
LDW .D2T2 *+SP(80),B7 ; |14|
LDW .D2T2 *+SP(76),B6 ; |14|
LDW .D2T2 *+SP(72),B5 ; |14|
LDW .D2T2 *+SP(68),B4 ; |14|
LDW .D2T2 *+SP(64),B3 ; |14|
LDW .D2T2 *+SP(60),B2 ; |14|
LDW .D2T2 *+SP(56),B1 ; |14|
LDW .D2T2 *+SP(52),B0 ; |14|
LDW .D2T1 *+SP(48),A9 ; |14|
LDW .D2T1 *+SP(44),A8 ; |14|
LDW .D2T1 *+SP(40),A7 ; |14|
LDW .D2T1 *+SP(36),A6 ; |14|
LDW .D2T1 *+SP(32),A5 ; |14|
LDW .D2T1 *+SP(28),A4 ; |14|
LDW .D2T1 *+SP(24),A3 ; |14|
LDW .D2T1 *+SP(20),A2 ; |14|
LDW .D2T1 *+SP(16),A1 ; |14|
LDW .D2T1 *+SP(12),A0 ; |14|
B .S2 IRP ; |14|
|| LDW .D2T2 *+SP(84),B8 ; |14|
LDW .D2T2 *++SP(88),B9 ; |14|
NOP 4
; BRANCH OCCURS ; |14|
.endfunc 14,003ff03ffh,88
.sect ".text"
.global _main
.sym _main,_main, 32, 2, 0
.func 16
;----------------------------------------------------------------------
; 16 | void main()
;----------------------------------------------------------------------
;******************************************************************************
;* FUNCTION NAME: _main *
;* *
;* 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,SP *
;* Local Frame Size : 0 Args + 0 Auto + 4 Save = 4 byte *
;******************************************************************************
_main:
;** --------------------------------------------------------------------------*
.line 2
STW .D2T2 B3,*SP--(8) ; |17|
NOP 2
.line 3
;----------------------------------------------------------------------
; 18 | comm_intr(); //init DSK, codec, McBSP
;----------------------------------------------------------------------
B .S1 _comm_intr ; |18|
MVKL .S2 RL2,B3 ; |18|
MVKH .S2 RL2,B3 ; |18|
NOP 3
RL2: ; CALL OCCURS ; |18|
.line 4
;----------------------------------------------------------------------
; 19 | while(1); //infinite loop
;----------------------------------------------------------------------
;*----------------------------------------------------------------------------*
;* SOFTWARE PIPELINE INFORMATION
;* Disqualified loop: software pipelining disabled
;*----------------------------------------------------------------------------*
L3:
B .S1 L3 ; |19|
NOP 5
; BRANCH OCCURS ; |19|
;** --------------------------------------------------------------------------*
.endfunc 20,000080000h,8
;******************************************************************************
;* MARK THE END OF THE SCALAR INIT RECORD IN CINIT:C *
;******************************************************************************
CIR: .sect ".cinit:c"
;******************************************************************************
;* UNDEFINED EXTERNAL REFERENCES *
;******************************************************************************
.global _output_sample
.global _comm_intr
;******************************************************************************
;* TYPE INFORMATION *
;******************************************************************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -