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

📄 cgiparse.asm

📁 这是DM642(EVM开发板)的视频采集和视频输出到网络调用的一个很好的例子原代码,用CCS3.3可以打开,调试通过.
💻 ASM
📖 第 1 页 / 共 3 页
字号:
;******************************************************************************
;* TMS320C6x C/C++ Codegen                                          PC v6.0.8 *
;* Date/Time created: Mon Mar 10 23:01:57 2008                                *
;******************************************************************************
	.compiler_opts --c64p_l1d_workaround=default --endian=little --hll_source=on --mem_model:code=far --mem_model:data=far --predefine_memory_model_macros --quiet --silicon_version=6400 --symdebug:skeletal 

;******************************************************************************
;* GLOBAL FILE PARAMETERS                                                     *
;*                                                                            *
;*   Architecture      : TMS320C64xx                                          *
;*   Optimization      : Enabled at level 3                                   *
;*   Optimizing for    : Speed                                                *
;*                       Based on options: -o3, no -ms                        *
;*   Endian            : Little                                               *
;*   Interrupt Thrshld : Disabled                                             *
;*   Data Access Model : Far                                                  *
;*   Pipelining        : Enabled                                              *
;*   Speculate Loads   : Disabled                                             *
;*   Memory Aliases    : Presume not aliases (optimistic)                     *
;*   Debug Info        : DWARF Debug for Program Analysis w/Optimization      *
;*                                                                            *
;******************************************************************************

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


$C$DW$CU	.dwtag  DW_TAG_compile_unit
	.dwattr $C$DW$CU, DW_AT_name("cgiparse.c")
	.dwattr $C$DW$CU, DW_AT_producer("TMS320C6x C/C++ Codegen PC v6.0.8 Copyright (c) 1996-2006 Texas Instruments Incorporated")
	.dwattr $C$DW$CU, DW_AT_TI_version(0x01)

$C$DW$1	.dwtag  DW_TAG_subprogram, DW_AT_name("strtol")
	.dwattr $C$DW$1, DW_AT_TI_symbol_name("_strtol")
	.dwattr $C$DW$1, DW_AT_type(*$C$DW$T$12)
	.dwattr $C$DW$1, DW_AT_declaration
	.dwattr $C$DW$1, DW_AT_external
$C$DW$2	.dwtag  DW_TAG_formal_parameter, DW_AT_type(*$C$DW$T$29)
$C$DW$3	.dwtag  DW_TAG_formal_parameter, DW_AT_type(*$C$DW$T$30)
$C$DW$4	.dwtag  DW_TAG_formal_parameter, DW_AT_type(*$C$DW$T$10)
	.dwendtag $C$DW$1

;	C:\CCStudio_v3.3\C6000\cgtools\bin\opt6x.exe C:\\DOCUME~1\\ADMINI~1\\LOCALS~1\\Temp\\024162 C:\\DOCUME~1\\ADMINI~1\\LOCALS~1\\Temp\\024164 
	.sect	".text"
	.global	_cgiParseVars

$C$DW$5	.dwtag  DW_TAG_subprogram, DW_AT_name("cgiParseVars")
	.dwattr $C$DW$5, DW_AT_low_pc(_cgiParseVars)
	.dwattr $C$DW$5, DW_AT_high_pc(0x00)
	.dwattr $C$DW$5, DW_AT_TI_symbol_name("_cgiParseVars")
	.dwattr $C$DW$5, DW_AT_external
	.dwattr $C$DW$5, DW_AT_type(*$C$DW$T$21)
	.dwattr $C$DW$5, DW_AT_TI_begin_file("cgiparse.c")
	.dwattr $C$DW$5, DW_AT_TI_begin_line(0x18)
	.dwattr $C$DW$5, DW_AT_TI_begin_column(0x07)
	.dwattr $C$DW$5, DW_AT_frame_base[DW_OP_breg31 48]
	.dwattr $C$DW$5, DW_AT_TI_skeletal
	.dwpsn	file "cgiparse.c",line 25,column 1,is_stmt,address _cgiParseVars

;******************************************************************************
;* FUNCTION NAME: cgiParseVars                                                *
;*                                                                            *
;*   Regs Modified     : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,B0,*
;*                           B1,B2,B3,B4,B5,B6,B7,B8,B9,B10,B11,B12,B13,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,B0,*
;*                           B1,B2,B3,B4,B5,B6,B7,B8,B9,B10,B11,B12,B13,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 + 8 Auto + 40 Save = 48 byte                  *
;******************************************************************************
_cgiParseVars:
;** --------------------------------------------------------------------------*

           MV      .L1X    SP,A31            ; |25| 
||         STW     .D2T1   A14,*SP--(48)     ; |25| 

           STDW    .D1T1   A13:A12,*-A31(24) ; |25| 
||         STDW    .D2T2   B13:B12,*+SP(40)  ; |25| 

           STDW    .D1T1   A11:A10,*-A31(32) ; |25| 
||         STDW    .D2T2   B11:B10,*+SP(32)  ; |25| 

           STW     .D2T2   B3,*+SP(12)       ; |25| 
$C$DW$6	.dwtag  DW_TAG_formal_parameter, DW_AT_name("PostIn")
	.dwattr $C$DW$6, DW_AT_TI_symbol_name("_PostIn")
	.dwattr $C$DW$6, DW_AT_type(*$C$DW$T$21)
	.dwattr $C$DW$6, DW_AT_location[DW_OP_reg4]
$C$DW$7	.dwtag  DW_TAG_formal_parameter, DW_AT_name("pParseIndex")
	.dwattr $C$DW$7, DW_AT_TI_symbol_name("_pParseIndex")
	.dwattr $C$DW$7, DW_AT_type(*$C$DW$T$22)
	.dwattr $C$DW$7, DW_AT_location[DW_OP_reg20]
           MV      .L2     B4,B13            ; |25| 
           LDW     .D2T2   *B13,B4           ; |35| 
           ZERO    .L2     B5                ; |37| 
           MV      .L2X    A4,B12            ; |25| 
           ZERO    .L2     B10               ; |39| 
           STB     .D2T2   B5,*+SP(10)       ; |37| 

           MV      .L1X    B4,A0             ; |40| 
||         CMPEQ   .L2     B4,-1,B0          ; |40| 

   [!A0]   B       .S2     $C$L1             ; |38| 
|| [!A0]   ZERO    .L2     B0                ; |41| nullify predicate
||         MV      .L1X    B4,A11            ; |35| 
||         MV      .S1     A0,A2             ; guard predicate rewrite
|| [ A0]   ZERO    .D1     A4                ; |41| 

   [ B0]   B       .S1     $C$L6             ; |41| 
|| [!A0]   ADD     .L1X    A11,B12,A10       ; |46| 
|| [!A0]   MV      .D1     A11,A12

   [!A0]   ADD     .L2X    A11,B12,B4        ; |46| 
   [!A0]   LDB     .D2T1   *B4,A0            ; |46| 
   [!A2]   MVK     .S1     61,A3             ; |46| 
           NOP             1
           ; BRANCHCC OCCURS {$C$L1}         ; |38| 
;** --------------------------------------------------------------------------*

   [!B0]   ADD     .L2X    1,A11,B10         ; |43| 
|| [!B0]   ADD     .L1     1,A11,A11         ; |43| 

           ; BRANCHCC OCCURS {$C$L6}         ; |41| 
;** --------------------------------------------------------------------------*
           MV      .L1     A11,A12
           ADD     .L2X    A11,B12,B4        ; |46| 
           LDB     .D2T1   *B4,A0            ; |46| 
           ADD     .L1X    A11,B12,A10       ; |46| 
           MVK     .S1     61,A3             ; |46| 
;** --------------------------------------------------------------------------*
$C$L1:    
           MVK     .S1     0x26,A14
           MVK     .S1     0x3d,A13          ; |46| 
           CMPEQ   .L1     A0,A3,A1          ; |46| 

   [ A1]   BNOP    .S1     $C$L5,2           ; |46| 
|| [!A1]   CMPEQ   .L2X    A0,0,B4           ; |46| 
|| [!A1]   CMPEQ   .L1     A0,A14,A3         ; |46| 

           MV      .L2X    A1,B0             ; guard predicate rewrite
   [!A1]   OR      .L1X    B4,A3,A1          ; |46| 
   [!B0]   MVK     .S1     43,A3             ; |48| 
           ; BRANCHCC OCCURS {$C$L5}         ; |46| 
;** --------------------------------------------------------------------------*

   [!A1]   ADD     .L2     B10,B12,B11
||         MV      .S1     A1,A2             ; guard predicate rewrite
|| [ A1]   B       .S2     $C$L5             ; |46| 
||         CMPEQ   .L1     A0,A3,A1          ; |48| 

	.dwpsn	file "cgiparse.c",line 46,column 0,is_stmt
   [ A2]   ZERO    .L1     A1                ; |48| nullify predicate
;*----------------------------------------------------------------------------*
;*   SOFTWARE PIPELINE INFORMATION
;*      Disqualified loop: Loop contains control code
;*----------------------------------------------------------------------------*
$C$L2:    
$C$DW$L$_cgiParseVars$6$B:
	.dwpsn	file "cgiparse.c",line 47,column 0,is_stmt
   [ A1]   BNOP    .S1     $C$L3,3           ; |48| 
           ; BRANCHCC OCCURS {$C$L5}         ; |46| 
$C$DW$L$_cgiParseVars$6$E:
;** --------------------------------------------------------------------------*
$C$DW$L$_cgiParseVars$7$B:

   [!A1]   MVK     .S1     37,A3             ; |50| 
||         MVK     .S2     32,B4             ; |49| 

           CMPEQ   .L1     A0,A3,A1          ; |50| 
           ; BRANCHCC OCCURS {$C$L3}         ; |48| 
$C$DW$L$_cgiParseVars$7$E:
;** --------------------------------------------------------------------------*
$C$DW$L$_cgiParseVars$8$B:

           MVKL    .S2     _strtol,B5        ; |54| 
|| [ A1]   ADD     .L1     1,A10,A10         ; |52| 
|| [!A1]   B       .S1     $C$L4             ; |58| 
|| [!A1]   STB     .D2T1   A0,*B11           ; |58| 

   [ A1]   LDB     .D1T1   *A10++,A4         ; |52| 
||         MVKH    .S2     _strtol,B5        ; |54| 

   [ A1]   CALL    .S2     B5                ; |54| 
|| [ A1]   LDB     .D1T1   *A10,A3           ; |53| 

   [!A1]   LDB     .D1T1   *++A10,A0         ; |59| 
   [!A1]   ADD     .L1     1,A11,A11         ; |59| 
   [!A1]   ADD     .L2     1,B10,B10         ; |58| 
           ; BRANCHCC OCCURS {$C$L4}         ; |58| 
$C$DW$L$_cgiParseVars$8$E:
;** --------------------------------------------------------------------------*
$C$DW$L$_cgiParseVars$9$B:
           STB     .D2T1   A4,*+SP(8)        ; |52| 

           STB     .D2T1   A3,*+SP(9)        ; |53| 
||         MVK     .S1     0x10,A6           ; |54| 
||         ADDKPC  .S2     $C$RL0,B3,0       ; |54| 
||         ZERO    .L2     B4                ; |54| 
||         ADD     .L1X    8,SP,A4           ; |54| 

$C$RL0:    ; CALL OCCURS {_strtol}           ; |54| 
$C$DW$L$_cgiParseVars$9$E:
;** --------------------------------------------------------------------------*
$C$DW$L$_cgiParseVars$10$B:

           BNOP    .S1     $C$L4,2           ; |56| 
||         ADD     .L2     1,B10,B10         ; |55| 
||         STB     .D2T1   A4,*B11           ; |55| 

           LDB     .D1T1   *++A10,A0         ; |59| 
           ADD     .L1     2,A11,A11         ; |52| 
           ADD     .L1     1,A11,A11         ; |59| 
           ; BRANCH OCCURS {$C$L4}           ; |56| 
$C$DW$L$_cgiParseVars$10$E:
;** --------------------------------------------------------------------------*
$C$L3:    
$C$DW$L$_cgiParseVars$11$B:
           STB     .D2T2   B4,*B11           ; |49| 

⌨️ 快捷键说明

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