📄 gf-indirec.asm
字号:
DW$37 .dwtag DW_TAG_subprogram, DW_AT_name("GF5500_ReadMem"), DW_AT_symbol_name("$GF5500_ReadMem")
.dwattr DW$37, DW_AT_low_pc($GF5500_ReadMem)
.dwattr DW$37, DW_AT_high_pc(0x00)
.dwattr DW$37, DW_AT_begin_file("GF-indirec.c")
.dwattr DW$37, DW_AT_begin_line(0x5d)
.dwattr DW$37, DW_AT_begin_column(0x05)
.dwpsn "GF-indirec.c",94,1
.dwfde DW$CIE
;*****************************************************************************
;* FUNCTION NAME: GF5500_ReadMem *
;* *
;* Regs Modified : A1,A2,SP,SR *
;* Regs Used : A1,A2,SP,SR *
;* Local Frame Size : 0 Args + 20 Auto + 0 Save = 20 byte *
;*****************************************************************************
$GF5500_ReadMem:
;* --------------------------------------------------------------------------*
.dwcfa 0x0e, 0
.dwcfa 0x09, 26, 14
ADD SP, #-20
.dwcfa 0x0e, 20
;* A1 assigned to _index
DW$38 .dwtag DW_TAG_formal_parameter, DW_AT_name("index"), DW_AT_symbol_name("_index")
.dwattr DW$38, DW_AT_type(*DW$T$19)
.dwattr DW$38, DW_AT_location[DW_OP_reg0]
DW$39 .dwtag DW_TAG_variable, DW_AT_name("index"), DW_AT_symbol_name("_index")
.dwattr DW$39, DW_AT_type(*DW$T$19)
.dwattr DW$39, DW_AT_location[DW_OP_breg13 0]
DW$40 .dwtag DW_TAG_variable, DW_AT_name("Addr1"), DW_AT_symbol_name("_Addr1")
.dwattr DW$40, DW_AT_type(*DW$T$20)
.dwattr DW$40, DW_AT_location[DW_OP_breg13 4]
DW$41 .dwtag DW_TAG_variable, DW_AT_name("Addr2"), DW_AT_symbol_name("_Addr2")
.dwattr DW$41, DW_AT_type(*DW$T$20)
.dwattr DW$41, DW_AT_location[DW_OP_breg13 6]
DW$42 .dwtag DW_TAG_variable, DW_AT_name("pointer_index"), DW_AT_symbol_name("_pointer_index")
.dwattr DW$42, DW_AT_type(*DW$T$26)
.dwattr DW$42, DW_AT_location[DW_OP_breg13 8]
DW$43 .dwtag DW_TAG_variable, DW_AT_name("pointer_data"), DW_AT_symbol_name("_pointer_data")
.dwattr DW$43, DW_AT_type(*DW$T$26)
.dwattr DW$43, DW_AT_location[DW_OP_breg13 12]
DW$44 .dwtag DW_TAG_variable, DW_AT_name("data"), DW_AT_symbol_name("_data")
.dwattr DW$44, DW_AT_type(*DW$T$20)
.dwattr DW$44, DW_AT_location[DW_OP_breg13 16]
STR A1, [SP, #0] ; |94|
.dwpsn "GF-indirec.c",95,6
MOV A2, #0 ; |95|
MOV A1, SP
STRH A2, [A1, #4] ; |95|
.dwpsn "GF-indirec.c",95,14
MOV A2, #0 ; |95|
MOV A1, SP
STRH A2, [A1, #6] ; |95|
.dwpsn "GF-indirec.c",98,6
MOV A2, #0 ; |98|
MOV A1, SP
STRH A2, [A1, #16] ; |98|
.dwpsn "GF-indirec.c",100,2
LDR A1, [SP, #0] ; |100|
LSL A1, A1, #1 ; |100|
MOV A2, SP
STRH A1, [A2, #4] ; |100|
.dwpsn "GF-indirec.c",102,2
MOV A1, #17
LSL A1, A1, #22
STR A1, [SP, #8] ; |102|
.dwpsn "GF-indirec.c",104,2
MOV A1, SP
LDRH A1, [A1, #4] ; |104|
LDR A2, [SP, #8] ; |104|
STRH A1, [A2, #0] ; |104|
.dwpsn "GF-indirec.c",106,2
MOV A1, #1
LSL A1, A1, #26
STR A1, [SP, #12] ; |106|
.dwpsn "GF-indirec.c",107,2
LDR A1, [SP, #12] ; |107|
LDRH A1, [A1, #0] ; |107|
MOV A2, SP
STRH A1, [A2, #16] ; |107|
.dwpsn "GF-indirec.c",109,2
MOV A1, SP
LDRH A1, [A1, #16] ; |109|
.dwpsn "GF-indirec.c",110,1
ADD SP, #20 ; |109|
.dwcfa 0x0e, 0
BX LR
.dwattr DW$37, DW_AT_end_file("GF-indirec.c")
.dwattr DW$37, DW_AT_end_line(0x6e)
.dwattr DW$37, DW_AT_end_column(0x01)
.dwendentry
.dwendtag DW$37
;******************************************************************************
;* STRINGS *
;******************************************************************************
.sect ".text"
.align 4
SL1: .string " read back data = 0x%.4x ",10,0
;******************************************************************************
;* CONSTANT TABLE *
;******************************************************************************
.sect ".text"
.align 4
CON1: .field _dataww,32
.align 4
CON7: .field 139396,32
.align 4
CON8: .field 139398,32
;******************************************************************************
;* UNDEFINED EXTERNAL REFERENCES *
;******************************************************************************
.global $printf
;******************************************************************************
;* TYPE INFORMATION *
;******************************************************************************
DW$T$21 .dwtag DW_TAG_subroutine_type
.dwattr DW$T$21, DW_AT_language(DW_LANG_C)
DW$45 .dwtag DW_TAG_formal_parameter, DW_AT_type(*DW$T$19)
DW$46 .dwtag DW_TAG_formal_parameter, DW_AT_type(*DW$T$20)
.dwendtag DW$T$21
DW$T$20 .dwtag DW_TAG_typedef, DW_AT_name("U16"), DW_AT_type(*DW$T$9)
.dwattr DW$T$20, DW_AT_language(DW_LANG_C)
DW$T$23 .dwtag DW_TAG_subroutine_type, DW_AT_type(*DW$T$20)
.dwattr DW$T$23, DW_AT_language(DW_LANG_C)
DW$47 .dwtag DW_TAG_formal_parameter, DW_AT_type(*DW$T$19)
.dwendtag DW$T$23
DW$T$25 .dwtag DW_TAG_volatile_type
.dwattr DW$T$25, DW_AT_type(*DW$T$20)
DW$T$26 .dwtag DW_TAG_pointer_type, DW_AT_type(*DW$T$20)
.dwattr DW$T$26, DW_AT_address_class(0x20)
DW$T$10 .dwtag DW_TAG_base_type, DW_AT_name("int")
.dwattr DW$T$10, DW_AT_encoding(DW_ATE_signed)
.dwattr DW$T$10, DW_AT_byte_size(0x04)
DW$T$30 .dwtag DW_TAG_subroutine_type, DW_AT_type(*DW$T$10)
.dwattr DW$T$30, DW_AT_language(DW_LANG_C)
DW$48 .dwtag DW_TAG_formal_parameter, DW_AT_type(*DW$T$29)
DW$49 .dwtag DW_TAG_unspecified_parameters
.dwendtag DW$T$30
DW$T$32 .dwtag DW_TAG_subroutine_type, DW_AT_type(*DW$T$10)
.dwattr DW$T$32, DW_AT_language(DW_LANG_C)
DW$T$19 .dwtag DW_TAG_typedef, DW_AT_name("U32"), DW_AT_type(*DW$T$13)
.dwattr DW$T$19, DW_AT_language(DW_LANG_C)
DW$T$29 .dwtag DW_TAG_pointer_type, DW_AT_type(*DW$T$28)
.dwattr DW$T$29, DW_AT_address_class(0x20)
DW$T$9 .dwtag DW_TAG_base_type, DW_AT_name("unsigned short")
.dwattr DW$T$9, DW_AT_encoding(DW_ATE_unsigned)
.dwattr DW$T$9, DW_AT_byte_size(0x02)
DW$T$13 .dwtag DW_TAG_base_type, DW_AT_name("unsigned long")
.dwattr DW$T$13, DW_AT_encoding(DW_ATE_unsigned)
.dwattr DW$T$13, DW_AT_byte_size(0x04)
DW$T$28 .dwtag DW_TAG_const_type
.dwattr DW$T$28, DW_AT_type(*DW$T$27)
DW$T$27 .dwtag DW_TAG_base_type, DW_AT_name("unsigned char")
.dwattr DW$T$27, DW_AT_encoding(DW_ATE_unsigned_char)
.dwattr DW$T$27, DW_AT_byte_size(0x01)
.dwattr DW$37, DW_AT_external(0x01)
.dwattr DW$37, DW_AT_type(*DW$T$20)
.dwattr DW$28, DW_AT_external(0x01)
.dwattr DW$28, DW_AT_type(*DW$T$20)
.dwattr DW$18, DW_AT_external(0x01)
.dwattr DW$8, DW_AT_external(0x01)
.dwattr DW$6, DW_AT_external(0x01)
.dwattr DW$6, DW_AT_type(*DW$T$10)
.dwattr DW$CU, DW_AT_language(DW_LANG_C)
;***************************************************************
;* DWARF CIE ENTRIES *
;***************************************************************
DW$CIE .dwcie 1, 26
.dwcfa 0x0c, 13, 0
.dwcfa 0x07, 0
.dwcfa 0x07, 1
.dwcfa 0x07, 2
.dwcfa 0x07, 3
.dwcfa 0x08, 4
.dwcfa 0x08, 5
.dwcfa 0x08, 6
.dwcfa 0x08, 7
.dwcfa 0x08, 8
.dwcfa 0x08, 9
.dwcfa 0x08, 10
.dwcfa 0x08, 11
.dwcfa 0x07, 12
.dwcfa 0x07, 13
.dwcfa 0x07, 14
.dwcfa 0x07, 15
.dwcfa 0x07, 16
.dwcfa 0x07, 17
.dwcfa 0x07, 18
.dwcfa 0x07, 19
.dwcfa 0x07, 20
.dwcfa 0x07, 21
.dwcfa 0x07, 22
.dwcfa 0x07, 23
.dwcfa 0x07, 24
.dwcfa 0x07, 25
.dwcfa 0x07, 26
;***************************************************************
;* DWARF REGISTER MAP *
;***************************************************************
DW$50 .dwtag DW_TAG_assign_register, DW_AT_name("A1")
.dwattr DW$50, DW_AT_location[DW_OP_reg0]
DW$51 .dwtag DW_TAG_assign_register, DW_AT_name("A2")
.dwattr DW$51, DW_AT_location[DW_OP_reg1]
DW$52 .dwtag DW_TAG_assign_register, DW_AT_name("A3")
.dwattr DW$52, DW_AT_location[DW_OP_reg2]
DW$53 .dwtag DW_TAG_assign_register, DW_AT_name("A4")
.dwattr DW$53, DW_AT_location[DW_OP_reg3]
DW$54 .dwtag DW_TAG_assign_register, DW_AT_name("V1")
.dwattr DW$54, DW_AT_location[DW_OP_reg4]
DW$55 .dwtag DW_TAG_assign_register, DW_AT_name("V2")
.dwattr DW$55, DW_AT_location[DW_OP_reg5]
DW$56 .dwtag DW_TAG_assign_register, DW_AT_name("V3")
.dwattr DW$56, DW_AT_location[DW_OP_reg6]
DW$57 .dwtag DW_TAG_assign_register, DW_AT_name("V4")
.dwattr DW$57, DW_AT_location[DW_OP_reg7]
DW$58 .dwtag DW_TAG_assign_register, DW_AT_name("V5")
.dwattr DW$58, DW_AT_location[DW_OP_reg8]
DW$59 .dwtag DW_TAG_assign_register, DW_AT_name("V6")
.dwattr DW$59, DW_AT_location[DW_OP_reg9]
DW$60 .dwtag DW_TAG_assign_register, DW_AT_name("V7")
.dwattr DW$60, DW_AT_location[DW_OP_reg10]
DW$61 .dwtag DW_TAG_assign_register, DW_AT_name("V8")
.dwattr DW$61, DW_AT_location[DW_OP_reg11]
DW$62 .dwtag DW_TAG_assign_register, DW_AT_name("V9")
.dwattr DW$62, DW_AT_location[DW_OP_reg12]
DW$63 .dwtag DW_TAG_assign_register, DW_AT_name("SP")
.dwattr DW$63, DW_AT_location[DW_OP_reg13]
DW$64 .dwtag DW_TAG_assign_register, DW_AT_name("LR")
.dwattr DW$64, DW_AT_location[DW_OP_reg14]
DW$65 .dwtag DW_TAG_assign_register, DW_AT_name("PC")
.dwattr DW$65, DW_AT_location[DW_OP_reg15]
DW$66 .dwtag DW_TAG_assign_register, DW_AT_name("C0")
.dwattr DW$66, DW_AT_location[DW_OP_reg16]
DW$67 .dwtag DW_TAG_assign_register, DW_AT_name("C1")
.dwattr DW$67, DW_AT_location[DW_OP_reg17]
DW$68 .dwtag DW_TAG_assign_register, DW_AT_name("C2")
.dwattr DW$68, DW_AT_location[DW_OP_reg18]
DW$69 .dwtag DW_TAG_assign_register, DW_AT_name("C3")
.dwattr DW$69, DW_AT_location[DW_OP_reg19]
DW$70 .dwtag DW_TAG_assign_register, DW_AT_name("C4")
.dwattr DW$70, DW_AT_location[DW_OP_reg20]
DW$71 .dwtag DW_TAG_assign_register, DW_AT_name("C5")
.dwattr DW$71, DW_AT_location[DW_OP_reg21]
DW$72 .dwtag DW_TAG_assign_register, DW_AT_name("C6")
.dwattr DW$72, DW_AT_location[DW_OP_reg22]
DW$73 .dwtag DW_TAG_assign_register, DW_AT_name("C7")
.dwattr DW$73, DW_AT_location[DW_OP_reg23]
DW$74 .dwtag DW_TAG_assign_register, DW_AT_name("AP")
.dwattr DW$74, DW_AT_location[DW_OP_reg24]
DW$75 .dwtag DW_TAG_assign_register, DW_AT_name("SR")
.dwattr DW$75, DW_AT_location[DW_OP_reg25]
DW$76 .dwtag DW_TAG_assign_register, DW_AT_name("CIE_RETA")
.dwattr DW$76, DW_AT_location[DW_OP_reg26]
.dwendtag DW$CU
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -