📄 gf-indirec.asm
字号:
;******************************************************************************
;* 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 + -