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

📄 gf-indirec.asm

📁 OMAP1030 处理器的ARM 侧硬件测试代码 OMAP1030 是TI的双核处理器
💻 ASM
📖 第 1 页 / 共 3 页
字号:
	.dwattr DW$8, DW_AT_end_line(0x36)
	.dwattr DW$8, DW_AT_end_column(0x01)
	.dwendentry
	.dwendtag DW$8

	.sect	".text:v$2"
	.clink
	.global	_GF5500_WriteMem

DW$17	.dwtag  DW_TAG_subprogram, DW_AT_name("GF5500_WriteMem"), DW_AT_symbol_name("_GF5500_WriteMem")
	.dwattr DW$17, DW_AT_veneer(0x01)
	.dwattr DW$17, DW_AT_low_pc(_GF5500_WriteMem)
	.dwattr DW$17, DW_AT_high_pc(0x00)
	.dwattr DW$17, DW_AT_external(0x01)
	.state32

;*****************************************************************************
;* FUNCTION VENEER: _GF5500_WriteMem                                         *
;*****************************************************************************
_GF5500_WriteMem:
	 LDR       ip, [pc]
	 BX        ip
	.field     $GF5500_WriteMem+1, 32
	.state16
	.dwendtag DW$17


	.sect	".text"
	.clink
	.global	$GF5500_WriteMem

DW$18	.dwtag  DW_TAG_subprogram, DW_AT_name("GF5500_WriteMem"), DW_AT_symbol_name("$GF5500_WriteMem")
	.dwattr DW$18, DW_AT_low_pc($GF5500_WriteMem)
	.dwattr DW$18, DW_AT_high_pc(0x00)
	.dwattr DW$18, DW_AT_begin_file("GF-indirec.c")
	.dwattr DW$18, DW_AT_begin_line(0x38)
	.dwattr DW$18, DW_AT_begin_column(0x06)
	.dwpsn	"GF-indirec.c",57,1

	.dwfde DW$CIE

;*****************************************************************************
;* FUNCTION NAME: GF5500_WriteMem                                            *
;*                                                                           *
;*   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_WriteMem:
;* --------------------------------------------------------------------------*
	.dwcfa	0x0e, 0
	.dwcfa	0x09, 26, 14
        ADD       SP, #-20
	.dwcfa	0x0e, 20
;* A1    assigned to _index
DW$19	.dwtag  DW_TAG_formal_parameter, DW_AT_name("index"), DW_AT_symbol_name("_index")
	.dwattr DW$19, DW_AT_type(*DW$T$19)
	.dwattr DW$19, DW_AT_location[DW_OP_reg0]
;* A2    assigned to _data
DW$20	.dwtag  DW_TAG_formal_parameter, DW_AT_name("data"), DW_AT_symbol_name("_data")
	.dwattr DW$20, DW_AT_type(*DW$T$20)
	.dwattr DW$20, DW_AT_location[DW_OP_reg1]
DW$21	.dwtag  DW_TAG_variable, DW_AT_name("index"), DW_AT_symbol_name("_index")
	.dwattr DW$21, DW_AT_type(*DW$T$19)
	.dwattr DW$21, DW_AT_location[DW_OP_breg13 0]
DW$22	.dwtag  DW_TAG_variable, DW_AT_name("data"), DW_AT_symbol_name("_data")
	.dwattr DW$22, DW_AT_type(*DW$T$20)
	.dwattr DW$22, DW_AT_location[DW_OP_breg13 4]
DW$23	.dwtag  DW_TAG_variable, DW_AT_name("Addr1"), DW_AT_symbol_name("_Addr1")
	.dwattr DW$23, DW_AT_type(*DW$T$20)
	.dwattr DW$23, DW_AT_location[DW_OP_breg13 6]
DW$24	.dwtag  DW_TAG_variable, DW_AT_name("Addr2"), DW_AT_symbol_name("_Addr2")
	.dwattr DW$24, DW_AT_type(*DW$T$20)
	.dwattr DW$24, DW_AT_location[DW_OP_breg13 8]
DW$25	.dwtag  DW_TAG_variable, DW_AT_name("pointer_index"), DW_AT_symbol_name("_pointer_index")
	.dwattr DW$25, DW_AT_type(*DW$T$26)
	.dwattr DW$25, DW_AT_location[DW_OP_breg13 12]
DW$26	.dwtag  DW_TAG_variable, DW_AT_name("pointer_data"), DW_AT_symbol_name("_pointer_data")
	.dwattr DW$26, DW_AT_type(*DW$T$26)
	.dwattr DW$26, DW_AT_location[DW_OP_breg13 16]
        MOV       A3, SP
        STRH      A2, [A3, #4]          ; |57| 
        STR       A1, [SP, #0]          ; |57| 
	.dwpsn	"GF-indirec.c",58,6
        MOV       A2, #0                ; |58| 
        MOV       A1, SP
        STRH      A2, [A1, #6]          ; |58| 
	.dwpsn	"GF-indirec.c",58,14
        MOV       A2, #0                ; |58| 
        MOV       A1, SP
        STRH      A2, [A1, #8]          ; |58| 
	.dwpsn	"GF-indirec.c",63,2
        LDR       A1, [SP, #0]          ; |63| 
        LSL       A1, A1, #1            ; |63| 
        MOV       A2, SP
        STRH      A1, [A2, #6]          ; |63| 
	.dwpsn	"GF-indirec.c",65,2
        MOV       A1, #17
        LSL       A1, A1, #22
        STR       A1, [SP, #12]         ; |65| 
	.dwpsn	"GF-indirec.c",67,2
        MOV       A1, SP
        LDRH      A1, [A1, #6]          ; |67| 
        LDR       A2, [SP, #12]         ; |67| 
        STRH      A1, [A2, #0]          ; |67| 
	.dwpsn	"GF-indirec.c",69,2
        MOV       A1, #1
        LSL       A1, A1, #26
        STR       A1, [SP, #16]         ; |69| 
	.dwpsn	"GF-indirec.c",70,2
        MOV       A1, SP
        LDRH      A1, [A1, #4]          ; |70| 
        LDR       A2, [SP, #16]         ; |70| 
        STRH      A1, [A2, #0]          ; |70| 
	.dwpsn	"GF-indirec.c",72,1
        ADD       SP, #20
	.dwcfa	0x0e, 0
        BX        LR
	.dwattr DW$18, DW_AT_end_file("GF-indirec.c")
	.dwattr DW$18, DW_AT_end_line(0x48)
	.dwattr DW$18, DW_AT_end_column(0x01)
	.dwendentry
	.dwendtag DW$18

	.sect	".text:v$3"
	.clink
	.global	_GF5500_ReadReg

DW$27	.dwtag  DW_TAG_subprogram, DW_AT_name("GF5500_ReadReg"), DW_AT_symbol_name("_GF5500_ReadReg")
	.dwattr DW$27, DW_AT_veneer(0x01)
	.dwattr DW$27, DW_AT_low_pc(_GF5500_ReadReg)
	.dwattr DW$27, DW_AT_high_pc(0x00)
	.dwattr DW$27, DW_AT_external(0x01)
	.state32

;*****************************************************************************
;* FUNCTION VENEER: _GF5500_ReadReg                                          *
;*****************************************************************************
_GF5500_ReadReg:
	 LDR       ip, [pc]
	 BX        ip
	.field     $GF5500_ReadReg+1, 32
	.state16
	.dwendtag DW$27


	.sect	".text"
	.clink
	.global	$GF5500_ReadReg

DW$28	.dwtag  DW_TAG_subprogram, DW_AT_name("GF5500_ReadReg"), DW_AT_symbol_name("$GF5500_ReadReg")
	.dwattr DW$28, DW_AT_low_pc($GF5500_ReadReg)
	.dwattr DW$28, DW_AT_high_pc(0x00)
	.dwattr DW$28, DW_AT_begin_file("GF-indirec.c")
	.dwattr DW$28, DW_AT_begin_line(0x4a)
	.dwattr DW$28, DW_AT_begin_column(0x05)
	.dwpsn	"GF-indirec.c",75,1

	.dwfde DW$CIE

;*****************************************************************************
;* FUNCTION NAME: GF5500_ReadReg                                             *
;*                                                                           *
;*   Regs Modified     : A1,A2,SP,SR                                         *
;*   Regs Used         : A1,A2,SP,SR                                         *
;*   Local Frame Size  : 0 Args + 20 Auto + 0 Save = 20 byte                 *
;*****************************************************************************
$GF5500_ReadReg:
;* --------------------------------------------------------------------------*
	.dwcfa	0x0e, 0
	.dwcfa	0x09, 26, 14
        ADD       SP, #-20
	.dwcfa	0x0e, 20
;* A1    assigned to _index
DW$29	.dwtag  DW_TAG_formal_parameter, DW_AT_name("index"), DW_AT_symbol_name("_index")
	.dwattr DW$29, DW_AT_type(*DW$T$19)
	.dwattr DW$29, DW_AT_location[DW_OP_reg0]
DW$30	.dwtag  DW_TAG_variable, DW_AT_name("index"), DW_AT_symbol_name("_index")
	.dwattr DW$30, DW_AT_type(*DW$T$19)
	.dwattr DW$30, DW_AT_location[DW_OP_breg13 0]
DW$31	.dwtag  DW_TAG_variable, DW_AT_name("Addr1"), DW_AT_symbol_name("_Addr1")
	.dwattr DW$31, DW_AT_type(*DW$T$20)
	.dwattr DW$31, DW_AT_location[DW_OP_breg13 4]
DW$32	.dwtag  DW_TAG_variable, DW_AT_name("Addr2"), DW_AT_symbol_name("_Addr2")
	.dwattr DW$32, DW_AT_type(*DW$T$20)
	.dwattr DW$32, DW_AT_location[DW_OP_breg13 6]
DW$33	.dwtag  DW_TAG_variable, DW_AT_name("pointer_index"), DW_AT_symbol_name("_pointer_index")
	.dwattr DW$33, DW_AT_type(*DW$T$26)
	.dwattr DW$33, DW_AT_location[DW_OP_breg13 8]
DW$34	.dwtag  DW_TAG_variable, DW_AT_name("pointer_data"), DW_AT_symbol_name("_pointer_data")
	.dwattr DW$34, DW_AT_type(*DW$T$26)
	.dwattr DW$34, DW_AT_location[DW_OP_breg13 12]
DW$35	.dwtag  DW_TAG_variable, DW_AT_name("data"), DW_AT_symbol_name("_data")
	.dwattr DW$35, DW_AT_type(*DW$T$20)
	.dwattr DW$35, DW_AT_location[DW_OP_breg13 16]
        STR       A1, [SP, #0]          ; |75| 
	.dwpsn	"GF-indirec.c",76,6
        MOV       A2, #0                ; |76| 
        MOV       A1, SP
        STRH      A2, [A1, #4]          ; |76| 
	.dwpsn	"GF-indirec.c",76,14
        MOV       A2, #0                ; |76| 
        MOV       A1, SP
        STRH      A2, [A1, #6]          ; |76| 
	.dwpsn	"GF-indirec.c",79,6
        MOV       A2, #0                ; |79| 
        MOV       A1, SP
        STRH      A2, [A1, #16]         ; |79| 
	.dwpsn	"GF-indirec.c",81,2
        LDR       A1, [SP, #0]          ; |81| 
        LSL       A2, A1, #17           ; |90| 
        LSR       A2, A2, #16           ; |90| 
        MOV       A1, #1                ; |81| 
        ORR       A1, A2                ; |81| 
        MOV       A2, SP
        STRH      A1, [A2, #4]          ; |81| 
	.dwpsn	"GF-indirec.c",83,2
        MOV       A1, #17
        LSL       A1, A1, #22
        STR       A1, [SP, #8]          ; |83| 
	.dwpsn	"GF-indirec.c",85,2
        MOV       A1, SP
        LDRH      A1, [A1, #4]          ; |85| 
        LDR       A2, [SP, #8]          ; |85| 
        STRH      A1, [A2, #0]          ; |85| 
	.dwpsn	"GF-indirec.c",87,2
        MOV       A1, #1
        LSL       A1, A1, #26
        STR       A1, [SP, #12]         ; |87| 
	.dwpsn	"GF-indirec.c",88,2
        LDR       A1, [SP, #12]         ; |88| 
        LDRH      A1, [A1, #0]          ; |88| 
        MOV       A2, SP
        STRH      A1, [A2, #16]         ; |88| 
	.dwpsn	"GF-indirec.c",90,2
        MOV       A1, SP
        LDRH      A1, [A1, #16]         ; |90| 
	.dwpsn	"GF-indirec.c",91,1
        ADD       SP, #20               ; |90| 
	.dwcfa	0x0e, 0
        BX        LR
	.dwattr DW$28, DW_AT_end_file("GF-indirec.c")
	.dwattr DW$28, DW_AT_end_line(0x5b)
	.dwattr DW$28, DW_AT_end_column(0x01)
	.dwendentry
	.dwendtag DW$28

	.sect	".text:v$4"
	.clink
	.global	_GF5500_ReadMem

DW$36	.dwtag  DW_TAG_subprogram, DW_AT_name("GF5500_ReadMem"), DW_AT_symbol_name("_GF5500_ReadMem")
	.dwattr DW$36, DW_AT_veneer(0x01)
	.dwattr DW$36, DW_AT_low_pc(_GF5500_ReadMem)
	.dwattr DW$36, DW_AT_high_pc(0x00)
	.dwattr DW$36, DW_AT_external(0x01)
	.state32

;*****************************************************************************
;* FUNCTION VENEER: _GF5500_ReadMem                                          *
;*****************************************************************************
_GF5500_ReadMem:
	 LDR       ip, [pc]
	 BX        ip
	.field     $GF5500_ReadMem+1, 32
	.state16
	.dwendtag DW$36


	.sect	".text"
	.clink
	.global	$GF5500_ReadMem

⌨️ 快捷键说明

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