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

📄 gf-indirec.asm

📁 OMAP1030 处理器的ARM 侧硬件测试代码 OMAP1030 是TI的双核处理器
💻 ASM
📖 第 1 页 / 共 3 页
字号:
;******************************************************************************
;* TMS470 C/C++ Codegen                                             PC v4.1.2 *
;* Date/Time created: Tue Jun 12 10:52:03 2007                                *
;******************************************************************************
	.compiler_opts --abi=tiabi --code_state=16 --endian=little --float_support=fpalib --quiet --silicon_version=4 
	.state16

DW$CU	.dwtag  DW_TAG_compile_unit
	.dwattr DW$CU, DW_AT_name("GF-indirec.c")
	.dwattr DW$CU, DW_AT_producer("TMS470 C/C++ Codegen PC v4.1.2 Copyright (c) 1996-2005 Texas Instruments Incorporated")
	.dwattr DW$CU, DW_AT_stmt_list(0x00)
	.dwattr DW$CU, DW_AT_TI_VERSION(0x01)

DW$1	.dwtag  DW_TAG_subprogram, DW_AT_name("printf"), DW_AT_symbol_name("$printf")
	.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$29)
DW$3	.dwtag  DW_TAG_unspecified_parameters
	.dwendtag DW$1

	.global	_dataww
	.bss	_dataww,2,2
DW$4	.dwtag  DW_TAG_variable, DW_AT_name("dataww"), DW_AT_symbol_name("_dataww")
	.dwattr DW$4, DW_AT_location[DW_OP_addr _dataww]
	.dwattr DW$4, DW_AT_type(*DW$T$25)
	.dwattr DW$4, DW_AT_external(0x01)
;	C:\CCStudio_v3.1\tms470\cgtools\bin\acp470.exe -@C:\DOCUME~1\user\LOCALS~1\Temp\TI32412 
	.sect	".text:v$0"
	.clink
	.global	_main_gf_test

DW$5	.dwtag  DW_TAG_subprogram, DW_AT_name("main_gf_test"), DW_AT_symbol_name("_main_gf_test")
	.dwattr DW$5, DW_AT_veneer(0x01)
	.dwattr DW$5, DW_AT_low_pc(_main_gf_test)
	.dwattr DW$5, DW_AT_high_pc(0x00)
	.dwattr DW$5, DW_AT_external(0x01)
	.state32

;*****************************************************************************
;* FUNCTION VENEER: _main_gf_test                                            *
;*****************************************************************************
_main_gf_test:
	 STMFD     sp!, {lr}
	 ADD       lr, pc, #1
	 BX        lr
	.state16
	 BL        $main_gf_test
	 BX        pc
	 NOP
	.state32
	 LDMFD     sp!, {pc}
	.state16
	.dwendtag DW$5


	.sect	".text"
	.clink
	.global	$main_gf_test

DW$6	.dwtag  DW_TAG_subprogram, DW_AT_name("main_gf_test"), DW_AT_symbol_name("$main_gf_test")
	.dwattr DW$6, DW_AT_low_pc($main_gf_test)
	.dwattr DW$6, DW_AT_high_pc(0x00)
	.dwattr DW$6, DW_AT_begin_file("GF-indirec.c")
	.dwattr DW$6, DW_AT_begin_line(0x16)
	.dwattr DW$6, DW_AT_begin_column(0x01)
	.dwpsn	"GF-indirec.c",23,1

	.dwfde DW$CIE

;*****************************************************************************
;* FUNCTION NAME: main_gf_test                                               *
;*                                                                           *
;*   Regs Modified     : A1,A2,A3,A4,V9,SP,LR,SR                             *
;*   Regs Used         : A1,A2,A3,A4,V9,SP,LR,SR                             *
;*   Local Frame Size  : 0 Args + 0 Auto + 4 Save = 4 byte                   *
;*****************************************************************************
$main_gf_test:
;* --------------------------------------------------------------------------*
	.dwcfa	0x0e, 0
	.dwcfa	0x09, 26, 14
        PUSH      {LR}
	.dwcfa	0x0e, 4
	.dwcfa	0x80, 14, 1
	.dwcfa	0x0e, 4
	.dwpsn	"GF-indirec.c",24,2
        MOV       A1, #0                ; |24| 
        LDR       A2, CON1              ; |24| 
        STRH      A1, [A2, #0]          ; |24| 
	.dwpsn	"GF-indirec.c",25,2
        MOV       A1, #0                ; |25| 
        MOV       A2, #8                ; |25| 
        BL        $GF5500_WriteReg      ; |25| 
        ; |25| 
	.dwpsn	"GF-indirec.c",26,2
        MOV       A1, #0                ; |26| 
        BL        $GF5500_ReadReg       ; |26| 
        ; |26| 
        LDR       A2, CON1              ; |26| 
        STRH      A1, [A2, #0]          ; |26| 
	.dwpsn	"GF-indirec.c",27,2
        MOV       A1, #72               ; |27| 
        MOV       A2, #15               ; |27| 
        BL        $GF5500_WriteReg      ; |27| 
        ; |27| 
	.dwpsn	"GF-indirec.c",28,2
        MOV       A1, #72               ; |28| 
        BL        $GF5500_ReadReg       ; |28| 
        ; |28| 
        LDR       A2, CON1              ; |28| 
        STRH      A1, [A2, #0]          ; |28| 
	.dwpsn	"GF-indirec.c",29,2
        MOV       A1, #76               ; |29| 
        BL        $GF5500_ReadReg       ; |29| 
        ; |29| 
        LDR       A2, CON1              ; |29| 
        STRH      A1, [A2, #0]          ; |29| 
	.dwpsn	"GF-indirec.c",31,2
        MOV       A1, #17
        LSL       A1, A1, #13
        MOV       A2, #8                ; |31| 
        BL        $GF5500_WriteReg      ; |31| 
        ; |31| 
	.dwpsn	"GF-indirec.c",32,2
        LDR       A1, CON7              ; |32| 
        BL        $GF5500_ReadReg       ; |32| 
        ; |32| 
        LDR       A2, CON1              ; |32| 
        STRH      A1, [A2, #0]          ; |32| 
	.dwpsn	"GF-indirec.c",33,2
        LDR       A1, CON1              ; |33| 
        LDRH      A2, [A1, #0]          ; |33| 
        ADR       A1, SL1               ; |33| 
        BL        $printf               ; |33| 
        ; |33| 
	.dwpsn	"GF-indirec.c",34,2
        LDR       A1, CON8              ; |34| 
        BL        $GF5500_ReadReg       ; |34| 
        ; |34| 
        LDR       A2, CON1              ; |34| 
        STRH      A1, [A2, #0]          ; |34| 
	.dwpsn	"GF-indirec.c",35,2
        LDR       A1, CON1              ; |35| 
        LDRH      A2, [A1, #0]          ; |35| 
        ADR       A1, SL1               ; |35| 
        BL        $printf               ; |35| 
        ; |35| 
	.dwpsn	"GF-indirec.c",37,1
	.dwcfa	0x0e, 4
        POP       {PC}
	.dwattr DW$6, DW_AT_end_file("GF-indirec.c")
	.dwattr DW$6, DW_AT_end_line(0x25)
	.dwattr DW$6, DW_AT_end_column(0x01)
	.dwendentry
	.dwendtag DW$6

	.sect	".text:v$1"
	.clink
	.global	_GF5500_WriteReg

DW$7	.dwtag  DW_TAG_subprogram, DW_AT_name("GF5500_WriteReg"), DW_AT_symbol_name("_GF5500_WriteReg")
	.dwattr DW$7, DW_AT_veneer(0x01)
	.dwattr DW$7, DW_AT_low_pc(_GF5500_WriteReg)
	.dwattr DW$7, DW_AT_high_pc(0x00)
	.dwattr DW$7, DW_AT_external(0x01)
	.state32

;*****************************************************************************
;* FUNCTION VENEER: _GF5500_WriteReg                                         *
;*****************************************************************************
_GF5500_WriteReg:
	 LDR       ip, [pc]
	 BX        ip
	.field     $GF5500_WriteReg+1, 32
	.state16
	.dwendtag DW$7


	.sect	".text"
	.clink
	.global	$GF5500_WriteReg

DW$8	.dwtag  DW_TAG_subprogram, DW_AT_name("GF5500_WriteReg"), DW_AT_symbol_name("$GF5500_WriteReg")
	.dwattr DW$8, DW_AT_low_pc($GF5500_WriteReg)
	.dwattr DW$8, DW_AT_high_pc(0x00)
	.dwattr DW$8, DW_AT_begin_file("GF-indirec.c")
	.dwattr DW$8, DW_AT_begin_line(0x27)
	.dwattr DW$8, DW_AT_begin_column(0x06)
	.dwpsn	"GF-indirec.c",40,1

	.dwfde DW$CIE

;*****************************************************************************
;* FUNCTION NAME: GF5500_WriteReg                                            *
;*                                                                           *
;*   Regs Modified     : A1,A2,A3,SP,SR                                      *
;*   Regs Used         : A1,A2,A3,SP,SR                                      *
;*   Local Frame Size  : 0 Args + 20 Auto + 0 Save = 20 byte                 *
;*****************************************************************************
$GF5500_WriteReg:
;* --------------------------------------------------------------------------*
	.dwcfa	0x0e, 0
	.dwcfa	0x09, 26, 14
        ADD       SP, #-20
	.dwcfa	0x0e, 20
;* A1    assigned to _index
DW$9	.dwtag  DW_TAG_formal_parameter, DW_AT_name("index"), DW_AT_symbol_name("_index")
	.dwattr DW$9, DW_AT_type(*DW$T$19)
	.dwattr DW$9, DW_AT_location[DW_OP_reg0]
;* A2    assigned to _data
DW$10	.dwtag  DW_TAG_formal_parameter, DW_AT_name("data"), DW_AT_symbol_name("_data")
	.dwattr DW$10, DW_AT_type(*DW$T$20)
	.dwattr DW$10, DW_AT_location[DW_OP_reg1]
DW$11	.dwtag  DW_TAG_variable, DW_AT_name("index"), DW_AT_symbol_name("_index")
	.dwattr DW$11, DW_AT_type(*DW$T$19)
	.dwattr DW$11, DW_AT_location[DW_OP_breg13 0]
DW$12	.dwtag  DW_TAG_variable, DW_AT_name("data"), DW_AT_symbol_name("_data")
	.dwattr DW$12, DW_AT_type(*DW$T$20)
	.dwattr DW$12, DW_AT_location[DW_OP_breg13 4]
DW$13	.dwtag  DW_TAG_variable, DW_AT_name("Addr1"), DW_AT_symbol_name("_Addr1")
	.dwattr DW$13, DW_AT_type(*DW$T$20)
	.dwattr DW$13, DW_AT_location[DW_OP_breg13 6]
DW$14	.dwtag  DW_TAG_variable, DW_AT_name("Addr2"), DW_AT_symbol_name("_Addr2")
	.dwattr DW$14, DW_AT_type(*DW$T$20)
	.dwattr DW$14, DW_AT_location[DW_OP_breg13 8]
DW$15	.dwtag  DW_TAG_variable, DW_AT_name("pointer_index"), DW_AT_symbol_name("_pointer_index")
	.dwattr DW$15, DW_AT_type(*DW$T$26)
	.dwattr DW$15, DW_AT_location[DW_OP_breg13 12]
DW$16	.dwtag  DW_TAG_variable, DW_AT_name("pointer_data"), DW_AT_symbol_name("_pointer_data")
	.dwattr DW$16, DW_AT_type(*DW$T$26)
	.dwattr DW$16, DW_AT_location[DW_OP_breg13 16]
        MOV       A3, SP
        STRH      A2, [A3, #4]          ; |40| 
        STR       A1, [SP, #0]          ; |40| 
	.dwpsn	"GF-indirec.c",41,6
        MOV       A2, #0                ; |41| 
        MOV       A1, SP
        STRH      A2, [A1, #6]          ; |41| 
	.dwpsn	"GF-indirec.c",41,14
        MOV       A2, #0                ; |41| 
        MOV       A1, SP
        STRH      A2, [A1, #8]          ; |41| 
	.dwpsn	"GF-indirec.c",45,2
        LDR       A1, [SP, #0]          ; |45| 
        LSL       A2, A1, #17
        LSR       A2, A2, #16
        MOV       A1, #1                ; |45| 
        ORR       A1, A2                ; |45| 
        MOV       A2, SP
        STRH      A1, [A2, #6]          ; |45| 
	.dwpsn	"GF-indirec.c",47,2
        MOV       A1, #17
        LSL       A1, A1, #22
        STR       A1, [SP, #12]         ; |47| 
	.dwpsn	"GF-indirec.c",49,2
        MOV       A1, SP
        LDRH      A1, [A1, #6]          ; |49| 
        LDR       A2, [SP, #12]         ; |49| 
        STRH      A1, [A2, #0]          ; |49| 
	.dwpsn	"GF-indirec.c",51,2
        MOV       A1, #1
        LSL       A1, A1, #26
        STR       A1, [SP, #16]         ; |51| 
	.dwpsn	"GF-indirec.c",52,2
        MOV       A1, SP
        LDRH      A1, [A1, #4]          ; |52| 
        LDR       A2, [SP, #16]         ; |52| 
        STRH      A1, [A2, #0]          ; |52| 
	.dwpsn	"GF-indirec.c",54,1
        ADD       SP, #20
	.dwcfa	0x0e, 0
        BX        LR
	.dwattr DW$8, DW_AT_end_file("GF-indirec.c")

⌨️ 快捷键说明

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