📄 inth.asm
字号:
MOV A3, #7 ; |153|
MOV A2, #2 ; |153|
SUB A4, V9, #32 ; |153|
BL _Setgroup32bit ; |153|
; |153|
.dwpsn "inth.c",155,8
LDR A1, [SP, #0] ; |155|
BL _OpenInterrupt ; |155|
; |155|
.dwpsn "inth.c",157,8
B L16 ; |157|
; |157|
;* --------------------------------------------------------------------------*
L13:
.dwpsn "inth.c",158,9
LDR V9, [SP, #0] ; |158|
CMP V9, #96 ; |158|
BCS L14 ; |158|
; |158|
;* --------------------------------------------------------------------------*
.dwpsn "inth.c",159,8
LDR V9, [SP, #0] ; |159|
LDR A4, [SP, #4] ; |159|
MOV A3, #1 ; |159|
MOV V9, V9, LSL #2 ; |159|
MOV A2, #0 ; |159|
SUB V9, V9, #740 ; |159|
SUB A1, V9, #130048 ; |159|
BL _Setgroup32bit ; |159|
; |159|
.dwpsn "inth.c",160,8
LDR V9, [SP, #0] ; |160|
MOV V9, V9, LSL #2 ; |160|
SUB V9, V9, #740 ; |160|
MOV A3, #1 ; |160|
MOV A2, #1 ; |160|
LDR A4, [SP, #8] ; |160|
SUB A1, V9, #130048 ; |160|
BL _Setgroup32bit ; |160|
; |160|
.dwpsn "inth.c",161,8
LDR V9, [SP, #0] ; |161|
MOV V9, V9, LSL #2 ; |161|
SUB V9, V9, #740 ; |161|
SUB A1, V9, #130048 ; |161|
LDR V9, [SP, #12] ; |161|
MOV A3, #7 ; |161|
MOV A2, #2 ; |161|
SUB A4, V9, #32 ; |161|
BL _Setgroup32bit ; |161|
; |161|
.dwpsn "inth.c",163,8
LDR A1, [SP, #0] ; |163|
BL _OpenInterrupt ; |163|
; |163|
.dwpsn "inth.c",165,8
B L16 ; |165|
; |165|
;* --------------------------------------------------------------------------*
L14:
.dwpsn "inth.c",167,10
;* --------------------------------------------------------------------------*
;* BEGIN LOOP L15
;*
;* Loop source line : 167
;* Known Minimum Trip Count : 1
;* Known Maximum Trip Count : 4294967295
;* Known Max Trip Count Factor : 1
;* --------------------------------------------------------------------------*
L15:
DW$L$_ConfInterrupt$8$B:
B L15 ; |167|
; |167|
DW$L$_ConfInterrupt$8$E:
;* --------------------------------------------------------------------------*
;* --------------------------------------------------------------------------*
L16:
.dwpsn "inth.c",170,1
STR A1, [SP, #0]
.dwcfa 0x0e, 20
LDMFD SP!, {A1, A2, A3, A4, PC}
DW$41 .dwtag DW_TAG_loop
.dwattr DW$41, DW_AT_name("D:\src\boston_board_test\ARM\arm_src\inth.asm:L15:1:1214374294")
.dwattr DW$41, DW_AT_begin_file("inth.c")
.dwattr DW$41, DW_AT_begin_line(0xa7)
.dwattr DW$41, DW_AT_end_line(0xa7)
DW$42 .dwtag DW_TAG_loop_range
.dwattr DW$42, DW_AT_low_pc(DW$L$_ConfInterrupt$8$B)
.dwattr DW$42, DW_AT_high_pc(DW$L$_ConfInterrupt$8$E)
.dwendtag DW$41
.dwattr DW$32, DW_AT_end_file("inth.c")
.dwattr DW$32, DW_AT_end_line(0xaa)
.dwattr DW$32, DW_AT_end_column(0x01)
.dwendentry
.dwendtag DW$32
.sect ".text"
.align 4
.clink
.armfunc _InterruptClearPending
.state32
.global _InterruptClearPending
DW$43 .dwtag DW_TAG_subprogram, DW_AT_name("InterruptClearPending"), DW_AT_symbol_name("_InterruptClearPending")
.dwattr DW$43, DW_AT_low_pc(_InterruptClearPending)
.dwattr DW$43, DW_AT_high_pc(0x00)
.dwattr DW$43, DW_AT_begin_file("inth.c")
.dwattr DW$43, DW_AT_begin_line(0xb9)
.dwattr DW$43, DW_AT_begin_column(0x06)
.dwpsn "inth.c",186,1
.dwfde DW$CIE
;*****************************************************************************
;* FUNCTION NAME: InterruptClearPending *
;* *
;* Regs Modified : A1,A2,A3,V9,SP,SR *
;* Regs Used : A1,A2,A3,V9,SP,SR *
;* Local Frame Size : 0 Args + 4 Auto + 0 Save = 4 byte *
;*****************************************************************************
_InterruptClearPending:
;* --------------------------------------------------------------------------*
.dwcfa 0x0e, 0
.dwcfa 0x09, 26, 14
SUB SP, SP, #4
.dwcfa 0x0e, 4
;* A1 assigned to _ItIndex
DW$44 .dwtag DW_TAG_formal_parameter, DW_AT_name("ItIndex"), DW_AT_symbol_name("_ItIndex")
.dwattr DW$44, DW_AT_type(*DW$T$34)
.dwattr DW$44, DW_AT_location[DW_OP_reg0]
DW$45 .dwtag DW_TAG_variable, DW_AT_name("ItIndex"), DW_AT_symbol_name("_ItIndex")
.dwattr DW$45, DW_AT_type(*DW$T$34)
.dwattr DW$45, DW_AT_location[DW_OP_breg13 0]
DW$46 .dwtag DW_TAG_variable, DW_AT_name("section"), DW_AT_symbol_name("_section")
.dwattr DW$46, DW_AT_type(*DW$T$34)
.dwattr DW$46, DW_AT_location[DW_OP_breg13 1]
DW$47 .dwtag DW_TAG_variable, DW_AT_name("It_index_in_section"), DW_AT_symbol_name("_It_index_in_section")
.dwattr DW$47, DW_AT_type(*DW$T$34)
.dwattr DW$47, DW_AT_location[DW_OP_breg13 2]
STRB A1, [SP, #0] ; |186|
.dwpsn "inth.c",191,3
LDRB V9, [SP, #0] ; |191|
CMP V9, #31 ; |191|
BLE L17 ; |191|
; |191|
;* --------------------------------------------------------------------------*
.dwpsn "inth.c",193,5
LDRB V9, [SP, #0] ; |193|
MOV A1, V9, ASR #4 ; |193|
ADD V9, V9, A1, LSR #27 ; |193|
MOV V9, V9, ASR #5 ; |193|
SUB V9, V9, #1 ; |193|
STRB V9, [SP, #1] ; |193|
.dwpsn "inth.c",194,5
LDRB V9, [SP, #0] ; |194|
MOV A1, V9, ASR #4 ; |194|
ADD A1, V9, A1, LSR #27 ; |194|
BIC A1, A1, #31 ; |194|
SUB V9, V9, A1 ; |194|
STRB V9, [SP, #2] ; |194|
.dwpsn "inth.c",196,5
LDRB V9, [SP, #1] ; |196|
MOV V9, V9, LSL #8 ; |196|
SUB V9, V9, #256 ; |196|
SUB V9, V9, #78848 ; |196|
MOV A3, #1 ; |196|
LDRB A1, [SP, #2] ; |196|
LDR A2, [V9, #0] ; |196|
BIC A1, A2, A3, LSL A1 ; |196|
STR A1, [V9, #0] ; |196|
.dwpsn "inth.c",197,3
B L18 ; |197|
; |197|
;* --------------------------------------------------------------------------*
L17:
.dwpsn "inth.c",201,5
LDR A2, CON16 ; |201|
LDRB V9, [SP, #0] ; |201|
MOV A3, #1 ; |201|
LDR A1, [A2, #0] ; |201|
BIC V9, A1, A3, LSL V9 ; |201|
STR V9, [A2, #0] ; |201|
.dwpsn "inth.c",202,3
;* --------------------------------------------------------------------------*
L18:
.dwpsn "inth.c",203,1
ADD SP, SP, #4
.dwcfa 0x0e, 0
BX LR
.dwattr DW$43, DW_AT_end_file("inth.c")
.dwattr DW$43, DW_AT_end_line(0xcb)
.dwattr DW$43, DW_AT_end_column(0x01)
.dwendentry
.dwendtag DW$43
.sect ".text"
.align 4
.clink
.armfunc _DisableInerrupt
.state32
.global _DisableInerrupt
DW$48 .dwtag DW_TAG_subprogram, DW_AT_name("DisableInerrupt"), DW_AT_symbol_name("_DisableInerrupt")
.dwattr DW$48, DW_AT_low_pc(_DisableInerrupt)
.dwattr DW$48, DW_AT_high_pc(0x00)
.dwattr DW$48, DW_AT_begin_file("inth.c")
.dwattr DW$48, DW_AT_begin_line(0xd7)
.dwattr DW$48, DW_AT_begin_column(0x06)
.dwpsn "inth.c",216,1
.dwfde DW$CIE
;*****************************************************************************
;* FUNCTION NAME: DisableInerrupt *
;* *
;* 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 + 8 Auto + 4 Save = 12 byte *
;*****************************************************************************
_DisableInerrupt:
;* --------------------------------------------------------------------------*
.dwcfa 0x0e, 0
.dwcfa 0x09, 26, 14
STMFD SP!, {A3, A4, LR}
.dwcfa 0x0e, 4
.dwcfa 0x80, 14, 1
.dwcfa 0x0e, 8
.dwcfa 0x80, 3, 2
.dwcfa 0x0e, 12
.dwcfa 0x80, 2, 3
.dwcfa 0x0e, 12
;* A1 assigned to _inthIndex
DW$49 .dwtag DW_TAG_formal_parameter, DW_AT_name("inthIndex"), DW_AT_symbol_name("_inthIndex")
.dwattr DW$49, DW_AT_type(*DW$T$11)
.dwattr DW$49, DW_AT_location[DW_OP_reg0]
;* A2 assigned to _disableFlag
DW$50 .dwtag DW_TAG_formal_parameter, DW_AT_name("disableFlag"), DW_AT_symbol_name("_disableFlag")
.dwattr DW$50, DW_AT_type(*DW$T$11)
.dwattr DW$50, DW_AT_location[DW_OP_reg1]
DW$51 .dwtag DW_TAG_variable, DW_AT_name("inthIndex"), DW_AT_symbol_name("_inthIndex")
.dwattr DW$51, DW_AT_type(*DW$T$11)
.dwattr DW$51, DW_AT_location[DW_OP_breg13 0]
DW$52 .dwtag DW_TAG_variable, DW_AT_name("disableFlag"), DW_AT_symbol_name("_disableFlag")
.dwattr DW$52, DW_AT_type(*DW$T$11)
.dwattr DW$52, DW_AT_location[DW_OP_breg13 4]
STR A2, [SP, #4] ; |216|
STR A1, [SP, #0] ; |216|
.dwpsn "inth.c",217,3
LDR V9, [SP, #4] ; |217|
CMP V9, #0 ; |217|
BNE L19 ; |217|
; |217|
;* --------------------------------------------------------------------------*
.dwpsn "inth.c",218,7
LDR A1, CON4 ; |218|
MVN A4, #0 ; |218|
MOV A3, #32 ; |218|
MOV A2, #0 ; |218|
BL _Setgroup32bit ; |218|
; |218|
.dwpsn "inth.c",219,7
MVN A4, #0 ; |219|
MOV A3, #32 ; |219|
MOV A2, #0 ; |219|
LDR A1, CON6 ; |219|
BL _Setgroup32bit ; |219|
; |219|
.dwpsn "inth.c",220,7
MVN A4, #0 ; |220|
MOV A3, #32 ; |220|
MOV A2, #0 ; |220|
LDR A1, CON8 ; |220|
BL _Setgroup32bit ; |220|
; |220|
.dwpsn "inth.c",221,4
B L24 ; |221|
; |221|
;* --------------------------------------------------------------------------*
L19:
.dwpsn "inth.c",223,8
LDR V9, [SP, #0] ; |223|
CMP V9, #96 ; |223|
BCC L21 ; |223|
; |223|
;* --------------------------------------------------------------------------*
.dwpsn "inth.c",225,13
;* --------------------------------------------------------------------------*
;* BEGIN LOOP L20
;*
;* Loop source line : 225
;* Known Minimum Trip Count : 1
;* Known Maximum Trip Count : 4294967295
;* Known Max Trip Count Factor : 1
;* --------------------------------------------------------------------------*
L20:
DW$L$_DisableInerrupt$5$B:
B L20 ; |225|
; |225|
DW$L$_DisableInerrupt$5$E:
;* --------------------------------------------------------------------------*
;* --------------------------------------------------------------------------*
L21:
.dwpsn "inth.c",229,8
LDR V9, [SP, #0] ; |229|
CMP V9, #32 ; |229|
BCS L22 ; |229|
; |229|
;* --------------------------------------------------------------------------*
.dwpsn "inth.c",231,6
LDR A1, CON4 ; |231|
LDR A2, [SP, #0] ; |231|
MOV A4, #1 ; |231|
MOV A3, #1 ; |231|
BL _Setgroup32bit ; |231|
; |231|
.dwpsn "inth.c",233,7
B L24 ; |233|
; |233|
;* --------------------------------------------------------------------------*
L22:
.dwpsn "inth.c",235,9
LDR V9, [SP, #0] ; |235|
CMP V9, #64 ; |235|
BCS L23 ; |235|
; |235|
;* --------------------------------------------------------------------------*
.dwpsn "inth.c",237,6
LDR V9, [SP, #0] ; |237|
LDR A1, CON6 ; |237|
MOV A4, #1 ; |237|
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -