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

📄 iqsample.asm

📁 This example code is for TI DSP(TMS320F2808) IQ math study.
💻 ASM
📖 第 1 页 / 共 3 页
字号:
;***************************************************************
;* TMS320C2000 C/C++ Codegen                         PC v4.1.3 *
;* Date/Time created: Fri Nov 14 12:48:08 2008                 *
;***************************************************************
	.compiler_opts --mem_model:code=flat --mem_model:data=large --quiet --silicon_version=28 
FP	.set	XAR2

DW$CU	.dwtag  DW_TAG_compile_unit
	.dwattr DW$CU, DW_AT_name("IQsample.c")
	.dwattr DW$CU, DW_AT_producer("TMS320C2000 C/C++ Codegen PC v4.1.3 Copyright (c) 1996-2006 Texas Instruments Incorporated")
	.dwattr DW$CU, DW_AT_stmt_list(0x00)
	.dwattr DW$CU, DW_AT_TI_VERSION(0x01)
;**************************************************************
;* CINIT RECORDS                                              *
;**************************************************************
	.sect	".cinit"
	.align	1
	.field  	-2,16
	.field  	_GlobalQ+0,32
	.field  	9,32			; _GlobalQ @ 0


DW$1	.dwtag  DW_TAG_subprogram, DW_AT_name("puts"), DW_AT_symbol_name("_puts")
	.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$30)
	.dwendtag DW$1


DW$3	.dwtag  DW_TAG_subprogram, DW_AT_name("_IQ9mag"), DW_AT_symbol_name("__IQ9mag")
	.dwattr DW$3, DW_AT_type(*DW$T$12)
	.dwattr DW$3, DW_AT_declaration(0x01)
	.dwattr DW$3, DW_AT_external(0x01)
DW$4	.dwtag  DW_TAG_formal_parameter, DW_AT_type(*DW$T$12)
DW$5	.dwtag  DW_TAG_formal_parameter, DW_AT_type(*DW$T$12)
	.dwendtag DW$3


DW$6	.dwtag  DW_TAG_subprogram, DW_AT_name("_IQ9mpyI32int"), DW_AT_symbol_name("__IQ9mpyI32int")
	.dwattr DW$6, DW_AT_type(*DW$T$12)
	.dwattr DW$6, DW_AT_declaration(0x01)
	.dwattr DW$6, DW_AT_external(0x01)
DW$7	.dwtag  DW_TAG_formal_parameter, DW_AT_type(*DW$T$12)
DW$8	.dwtag  DW_TAG_formal_parameter, DW_AT_type(*DW$T$12)
	.dwendtag DW$6


DW$9	.dwtag  DW_TAG_subprogram, DW_AT_name("_atoIQN"), DW_AT_symbol_name("__atoIQN")
	.dwattr DW$9, DW_AT_type(*DW$T$12)
	.dwattr DW$9, DW_AT_declaration(0x01)
	.dwattr DW$9, DW_AT_external(0x01)
DW$10	.dwtag  DW_TAG_formal_parameter, DW_AT_type(*DW$T$30)
DW$11	.dwtag  DW_TAG_formal_parameter, DW_AT_type(*DW$T$12)
	.dwendtag DW$9

	.global	_finput
_finput:	.usect	".ebss",2,1,1
DW$12	.dwtag  DW_TAG_variable, DW_AT_name("finput"), DW_AT_symbol_name("_finput")
	.dwattr DW$12, DW_AT_location[DW_OP_addr _finput]
	.dwattr DW$12, DW_AT_type(*DW$T$19)
	.dwattr DW$12, DW_AT_external(0x01)
	.global	_foutput
_foutput:	.usect	".ebss",2,1,1
DW$13	.dwtag  DW_TAG_variable, DW_AT_name("foutput"), DW_AT_symbol_name("_foutput")
	.dwattr DW$13, DW_AT_location[DW_OP_addr _foutput]
	.dwattr DW$13, DW_AT_type(*DW$T$19)
	.dwattr DW$13, DW_AT_external(0x01)
	.global	_GlobalQ
_GlobalQ:	.usect	".ebss",2,1,1
DW$14	.dwtag  DW_TAG_variable, DW_AT_name("GlobalQ"), DW_AT_symbol_name("_GlobalQ")
	.dwattr DW$14, DW_AT_location[DW_OP_addr _GlobalQ]
	.dwattr DW$14, DW_AT_type(*DW$T$12)
	.dwattr DW$14, DW_AT_external(0x01)

DW$15	.dwtag  DW_TAG_subprogram, DW_AT_name("gets"), DW_AT_symbol_name("_gets")
	.dwattr DW$15, DW_AT_type(*DW$T$26)
	.dwattr DW$15, DW_AT_declaration(0x01)
	.dwattr DW$15, DW_AT_external(0x01)
DW$16	.dwtag  DW_TAG_formal_parameter, DW_AT_type(*DW$T$26)
	.dwendtag DW$15


DW$17	.dwtag  DW_TAG_subprogram, DW_AT_name("_IQ9div"), DW_AT_symbol_name("__IQ9div")
	.dwattr DW$17, DW_AT_type(*DW$T$12)
	.dwattr DW$17, DW_AT_declaration(0x01)
	.dwattr DW$17, DW_AT_external(0x01)
DW$18	.dwtag  DW_TAG_formal_parameter, DW_AT_type(*DW$T$12)
DW$19	.dwtag  DW_TAG_formal_parameter, DW_AT_type(*DW$T$12)
	.dwendtag DW$17


DW$20	.dwtag  DW_TAG_subprogram, DW_AT_name("labs"), DW_AT_symbol_name("_labs")
	.dwattr DW$20, DW_AT_type(*DW$T$12)
	.dwattr DW$20, DW_AT_declaration(0x01)
	.dwattr DW$20, DW_AT_external(0x01)
DW$21	.dwtag  DW_TAG_formal_parameter, DW_AT_type(*DW$T$12)
	.dwendtag DW$20


DW$22	.dwtag  DW_TAG_subprogram, DW_AT_name("_IQ9exp"), DW_AT_symbol_name("__IQ9exp")
	.dwattr DW$22, DW_AT_type(*DW$T$12)
	.dwattr DW$22, DW_AT_declaration(0x01)
	.dwattr DW$22, DW_AT_external(0x01)
DW$23	.dwtag  DW_TAG_formal_parameter, DW_AT_type(*DW$T$12)
	.dwendtag DW$22


DW$24	.dwtag  DW_TAG_subprogram, DW_AT_name("_IQ9atan2PU"), DW_AT_symbol_name("__IQ9atan2PU")
	.dwattr DW$24, DW_AT_type(*DW$T$12)
	.dwattr DW$24, DW_AT_declaration(0x01)
	.dwattr DW$24, DW_AT_external(0x01)
DW$25	.dwtag  DW_TAG_formal_parameter, DW_AT_type(*DW$T$12)
DW$26	.dwtag  DW_TAG_formal_parameter, DW_AT_type(*DW$T$12)
	.dwendtag DW$24


DW$27	.dwtag  DW_TAG_subprogram, DW_AT_name("__IQmpy"), DW_AT_symbol_name("___IQmpy")
	.dwattr DW$27, DW_AT_type(*DW$T$12)
	.dwattr DW$27, DW_AT_declaration(0x01)
	.dwattr DW$27, DW_AT_external(0x01)
DW$28	.dwtag  DW_TAG_formal_parameter, DW_AT_type(*DW$T$12)
DW$29	.dwtag  DW_TAG_formal_parameter, DW_AT_type(*DW$T$12)
DW$30	.dwtag  DW_TAG_formal_parameter, DW_AT_type(*DW$T$10)
	.dwendtag DW$27


DW$31	.dwtag  DW_TAG_subprogram, DW_AT_name("_IQ9sin"), DW_AT_symbol_name("__IQ9sin")
	.dwattr DW$31, DW_AT_type(*DW$T$12)
	.dwattr DW$31, DW_AT_declaration(0x01)
	.dwattr DW$31, DW_AT_external(0x01)
DW$32	.dwtag  DW_TAG_formal_parameter, DW_AT_type(*DW$T$12)
	.dwendtag DW$31

	.global	_Step
_Step:	.usect	".ebss",18,1,1
DW$33	.dwtag  DW_TAG_variable, DW_AT_name("Step"), DW_AT_symbol_name("_Step")
	.dwattr DW$33, DW_AT_location[DW_OP_addr _Step]
	.dwattr DW$33, DW_AT_type(*DW$T$23)
	.dwattr DW$33, DW_AT_external(0x01)
	.global	_Dlog
_Dlog:	.usect	".ebss",640,1,1
DW$34	.dwtag  DW_TAG_variable, DW_AT_name("Dlog"), DW_AT_symbol_name("_Dlog")
	.dwattr DW$34, DW_AT_location[DW_OP_addr _Dlog]
	.dwattr DW$34, DW_AT_type(*DW$T$22)
	.dwattr DW$34, DW_AT_external(0x01)
;	C:\CCStudio_v3.3\C2000\cgtools\bin\opt2000.exe C:\DOCUME~1\STANLE~1.CHE\LOCALS~1\Temp\TI0082 C:\DOCUME~1\STANLE~1.CHE\LOCALS~1\Temp\TI0084 
;	C:\CCStudio_v3.3\C2000\cgtools\bin\ac2000.exe -@C:\DOCUME~1\STANLE~1.CHE\LOCALS~1\Temp\TI00812 
	.sect	".text"
	.global	_main

DW$35	.dwtag  DW_TAG_subprogram, DW_AT_name("main"), DW_AT_symbol_name("_main")
	.dwattr DW$35, DW_AT_low_pc(_main)
	.dwattr DW$35, DW_AT_high_pc(0x00)
	.dwattr DW$35, DW_AT_begin_file("IQsample.c")
	.dwattr DW$35, DW_AT_begin_line(0x3d)
	.dwattr DW$35, DW_AT_begin_column(0x05)
	.dwpsn	"IQsample.c",62,1

	.dwfde DW$CIE

;***************************************************************
;* FNAME: _main                         FR SIZE:  40           *
;*                                                             *
;* FUNCTION ENVIRONMENT                                        *
;*                                                             *
;* FUNCTION PROPERTIES                                         *
;*                            2 Parameter, 32 Auto,  6 SOE     *
;***************************************************************


;***************************************************************
;*                                                             *
;* Using -g (debug) with optimization (-o3) may disable key op *
;*                                                             *
;***************************************************************
_main:
	.dwcfa	0x1d, -2
	.dwcfa	0x1c, 26, 0
	.dwcfa	0x09, 40, 26
        MOVL      *SP++,XAR1
	.dwcfa	0x80, 7, 2
	.dwcfa	0x1d, -4
        MOVL      *SP++,XAR2
	.dwcfa	0x80, 9, 4
	.dwcfa	0x1d, -6
        MOVL      *SP++,XAR3
	.dwcfa	0x80, 11, 6
	.dwcfa	0x1d, -8
        ADDB      SP,#34
	.dwcfa	0x1d, -42
;* AR6   assigned to L$1
;* AR2   assigned to _tempMmax
DW$36	.dwtag  DW_TAG_variable, DW_AT_name("tempMmax"), DW_AT_symbol_name("_tempMmax")
	.dwattr DW$36, DW_AT_type(*DW$T$19)
	.dwattr DW$36, DW_AT_location[DW_OP_reg8]
DW$37	.dwtag  DW_TAG_variable, DW_AT_name("tempY"), DW_AT_symbol_name("_tempY")
	.dwattr DW$37, DW_AT_type(*DW$T$19)
	.dwattr DW$37, DW_AT_location[DW_OP_breg20 -34]
DW$38	.dwtag  DW_TAG_variable, DW_AT_name("tempX"), DW_AT_symbol_name("_tempX")
	.dwattr DW$38, DW_AT_type(*DW$T$19)
	.dwattr DW$38, DW_AT_location[DW_OP_breg20 -32]
;* AR3   assigned to _i
DW$39	.dwtag  DW_TAG_variable, DW_AT_name("i"), DW_AT_symbol_name("_i")
	.dwattr DW$39, DW_AT_type(*DW$T$11)
	.dwattr DW$39, DW_AT_location[DW_OP_reg10]
;* AL    assigned to v$1
;* AL    assigned to v$2
;* AL    assigned to v$3
;* AL    assigned to v$4
;* AR6   assigned to v$5
;* PL    assigned to v$6
;* AL    assigned to v$7
;* AL    assigned to v$8
;* AL    assigned to v$9
;* AL    assigned to v$10
;* AR4   assigned to U$20
;* AR1   assigned to U$20
DW$40	.dwtag  DW_TAG_variable, DW_AT_name("buffer"), DW_AT_symbol_name("_buffer")
	.dwattr DW$40, DW_AT_type(*DW$T$50)
	.dwattr DW$40, DW_AT_location[DW_OP_breg20 -22]
 EALLOW 
	.dwpsn	"IQsample.c",73,5
        MOVB      AL,#104               ; |73| 
        MOV       *(0:0x7029),AL        ; |73| 
 EDIS 
        MOVW      DP,#_Step
        MOVB      ACC,#160
	.dwpsn	"IQsample.c",77,5
        MOVL      @_Step,ACC            ; |77| 
	.dwpsn	"IQsample.c",78,5
        MOVL      @_Step+2,ACC          ; |78| 
        MOVB      ACC,#0
        MOVL      XAR4,#_Dlog
	.dwpsn	"IQsample.c",84,33
        MOVB      XAR5,#2               ; |84| 
	.dwpsn	"IQsample.c",79,5
        MOVL      @_Step+4,ACC          ; |79| 
        MOVB      XAR6,#63
	.dwpsn	"IQsample.c",80,5
        MOVL      @_Step+6,ACC          ; |80| 
	.dwpsn	"IQsample.c",81,5
        MOVL      @_Step+8,ACC          ; |81| 
L1:    
DW$L$_main$2$B:
        MOVB      ACC,#0
	.dwpsn	"IQsample.c",87,9
        MOVB      XAR0,#128             ; |87| 
	.dwpsn	"IQsample.c",86,9
        MOVL      *+XAR4[0],ACC         ; |86| 
	.dwpsn	"IQsample.c",87,9
        MOVL      *+XAR4[AR0],ACC       ; |87| 
	.dwpsn	"IQsample.c",88,9
        MOVL      XAR0,#384             ; |88| 
        MOVL      *+XAR4[AR0],ACC       ; |88| 
	.dwpsn	"IQsample.c",89,9
        MOVL      XAR0,#256             ; |89| 
        MOVL      *+XAR4[AR0],ACC       ; |89| 
	.dwpsn	"IQsample.c",90,9
        MOVL      XAR0,#512             ; |90| 
        MOVL      *+XAR4[AR0],ACC       ; |90| 
	.dwpsn	"IQsample.c",84,33
        MOVL      ACC,XAR4              ; |84| 
        ADDU      ACC,AR5               ; |84| 
        MOVL      XAR4,ACC              ; |84| 
	.dwpsn	"IQsample.c",84,14
        BANZ      L1,AR6--              ; |84| 
        ; branchcc occurs ; |84| 
DW$L$_main$2$E:
	.dwpsn	"IQsample.c",94,2
        MOVL      XAR4,#321             ; |94| 
        MOVW      DP,#_finput
        SPM       #0
        MOV       ACC,#321 << 0
        MOVL      @_finput,XAR4         ; |94| 
	.dwpsn	"IQsample.c",96,2
        LCR       #__IQ9sin             ; |96| 
        ; call occurs [#__IQ9sin] ; |96| 
        MOVW      DP,#_foutput
	.dwpsn	"IQsample.c",98,2
        MOVL      XAR4,#804             ; |98| 
        MOVL      @_finput,XAR4         ; |98| 
	.dwpsn	"IQsample.c",96,2
        MOVL      @_foutput,ACC         ; |96| 
	.dwpsn	"IQsample.c",121,5
        MOVL      XAR4,#FSL1            ; |121| 
        LCR       #_puts                ; |121| 
        ; call occurs [#_puts] ; |121| 
	.dwpsn	"IQsample.c",122,5
        MOVZ      AR4,SP                ; |122| 
        SUBB      XAR4,#22              ; |122| 
        LCR       #_gets                ; |122| 
        ; call occurs [#_gets] ; |122| 
	.dwpsn	"IQsample.c",123,5
        MOVZ      AR4,SP                ; |123| 
        SUBB      XAR4,#22              ; |123| 
        MOVB      ACC,#9
        LCR       #__atoIQN             ; |123| 
        ; call occurs [#__atoIQN] ; |123| 
	.dwpsn	"IQsample.c",124,5
        TEST      ACC                   ; |124| 
        BF        L2,EQ                 ; |124| 
        ; branchcc occurs ; |124| 
        MOVL      XAR4,ACC              ; |124| 
        BF        L3,UNC                ; |124| 
        ; branch occurs ; |124| 
L2:    
        MOVL      XAR4,#512             ; |124| 
L3:    
        MOVW      DP,#_Step+10
        MOVL      @_Step+10,XAR4        ; |124| 
        MOVL      XAR4,#FSL2
        LCR       #_puts
        ; call occurs [#_puts]
	.dwpsn	"IQsample.c",128,5
        MOVZ      AR4,SP                ; |128| 
        SUBB      XAR4,#22              ; |128| 

⌨️ 快捷键说明

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