📄 gpio.asm
字号:
LDR A2, CON4 ; |152|
MOV A1, A1, ASR #1 ; |152|
STR V9, [A2, +A1, LSL #11] ; |152|
.dwpsn "GPIO.c",154,12
LDR V9, [SP, #0] ; |154|
LDR A1, CON5 ; |154|
MOV V9, V9, ASR #1 ; |154|
LDR V9, [A1, +V9, LSL #11] ; |154|
STR V9, [SP, #12] ; |154|
.dwpsn "GPIO.c",155,12
LDR V9, [SP, #4] ; |155|
MOV A2, #1 ; |155|
LDR A1, [SP, #12] ; |155|
SUB V9, V9, #32 ; |155|
ORR V9, A1, A2, LSL V9 ; |155|
LDR A1, [SP, #0] ; |155|
LDR A2, CON5 ; |155|
MOV A1, A1, ASR #1 ; |155|
STR V9, [A2, +A1, LSL #11] ; |155|
.dwpsn "GPIO.c",157,12
B L15 ; |157|
; |157|
;* --------------------------------------------------------------------------*
;* --------------------------------------------------------------------------*
L11:
.dwpsn "GPIO.c",160,18
LDR V9, [SP, #0] ; |160|
LDR A1, CON6 ; |160|
MOV V9, V9, ASR #1 ; |160|
LDR V9, [A1, +V9, LSL #11] ; |160|
STR V9, [SP, #12] ; |160|
.dwpsn "GPIO.c",161,18
LDR V9, [SP, #4] ; |161|
MOV A2, #1 ; |161|
LDR A1, [SP, #12] ; |161|
SUB V9, V9, #32 ; |161|
ORR V9, A1, A2, LSL V9 ; |161|
LDR A1, [SP, #0] ; |161|
LDR A2, CON6 ; |161|
MOV A1, A1, ASR #1 ; |161|
STR V9, [A2, +A1, LSL #11] ; |161|
.dwpsn "GPIO.c",162,20
B L16 ; |162|
; |162|
;* --------------------------------------------------------------------------*
L12:
.dwpsn "GPIO.c",165,19
LDR V9, [SP, #0] ; |165|
LDR A1, CON7 ; |165|
MOV V9, V9, ASR #1 ; |165|
LDR V9, [A1, +V9, LSL #11] ; |165|
STR V9, [SP, #12] ; |165|
.dwpsn "GPIO.c",166,19
LDR V9, [SP, #4] ; |166|
MOV A2, #1 ; |166|
LDR A1, [SP, #12] ; |166|
SUB V9, V9, #32 ; |166|
ORR V9, A1, A2, LSL V9 ; |166|
LDR A1, [SP, #0] ; |166|
LDR A2, CON7 ; |166|
MOV A1, A1, ASR #1 ; |166|
STR V9, [A2, +A1, LSL #11] ; |166|
.dwpsn "GPIO.c",167,22
B L16 ; |167|
; |167|
;* --------------------------------------------------------------------------*
L13:
.dwpsn "GPIO.c",170,19
LDR V9, [SP, #0] ; |170|
LDR A1, CON8 ; |170|
MOV V9, V9, ASR #1 ; |170|
LDR V9, [A1, +V9, LSL #11] ; |170|
STR V9, [SP, #12] ; |170|
.dwpsn "GPIO.c",171,19
LDR V9, [SP, #4] ; |171|
MOV A2, #1 ; |171|
LDR A1, [SP, #12] ; |171|
SUB V9, V9, #32 ; |171|
ORR V9, A1, A2, LSL V9 ; |171|
LDR A1, [SP, #0] ; |171|
LDR A2, CON8 ; |171|
MOV A1, A1, ASR #1 ; |171|
STR V9, [A2, +A1, LSL #11] ; |171|
.dwpsn "GPIO.c",172,22
B L16 ; |172|
; |172|
;* --------------------------------------------------------------------------*
L14:
.dwpsn "GPIO.c",175,19
LDR V9, [SP, #0] ; |175|
LDR A1, CON9 ; |175|
MOV V9, V9, ASR #1 ; |175|
LDR V9, [A1, +V9, LSL #11] ; |175|
STR V9, [SP, #12] ; |175|
.dwpsn "GPIO.c",176,19
LDR V9, [SP, #4] ; |176|
MOV A2, #1 ; |176|
LDR A1, [SP, #12] ; |176|
SUB V9, V9, #32 ; |176|
ORR V9, A1, A2, LSL V9 ; |176|
LDR A1, [SP, #0] ; |176|
LDR A2, CON9 ; |176|
MOV A1, A1, ASR #1 ; |176|
STR V9, [A2, +A1, LSL #11] ; |176|
.dwpsn "GPIO.c",177,22
B L16 ; |177|
; |177|
;* --------------------------------------------------------------------------*
L15:
.dwpsn "GPIO.c",157,12
LDR V9, [SP, #8] ; |157|
CMP V9, #0 ; |157|
BEQ L11 ; |157|
; |157|
;* --------------------------------------------------------------------------*
SUBS V9, V9, #1 ; |157|
BEQ L12 ; |157|
; |157|
;* --------------------------------------------------------------------------*
SUBS V9, V9, #1 ; |157|
BEQ L13 ; |157|
; |157|
;* --------------------------------------------------------------------------*
SUBS V9, V9, #1 ; |157|
BEQ L14 ; |157|
; |157|
;* --------------------------------------------------------------------------*
L16:
.dwpsn "GPIO.c",181,6
MOV V9, #1 ; |181|
LDR A1, CON10 ; |181|
STR V9, [A1, #0] ; |181|
.dwpsn "GPIO.c",182,6
LDR A1, CON11 ; |182|
LDR V9, [A1, #0] ; |182|
BIC V9, V9, #16384 ; |182|
STR V9, [A1, #0] ; |182|
.dwpsn "GPIO.c",183,9
LDR A1, CON11 ; |183|
LDR V9, [A1, #0] ; |183|
BIC V9, V9, #1 ; |183|
STR V9, [A1, #0] ; |183|
.dwpsn "GPIO.c",184,6
LDR A1, CON12 ; |184|
LDR V9, [A1, #0] ; |184|
BIC V9, V9, #256 ; |184|
STR V9, [A1, #0] ; |184|
.dwpsn "GPIO.c",185,3
ADD SP, SP, #16
.dwcfa 0x0e, 0
BX LR
.dwattr DW$39, DW_AT_end_file("GPIO.c")
.dwattr DW$39, DW_AT_end_line(0xb9)
.dwattr DW$39, DW_AT_end_column(0x03)
.dwendentry
.dwendtag DW$39
.sect ".text"
.align 4
.clink
.armfunc _gpio_readirq
.state32
.global _gpio_readirq
DW$47 .dwtag DW_TAG_subprogram, DW_AT_name("gpio_readirq"), DW_AT_symbol_name("_gpio_readirq")
.dwattr DW$47, DW_AT_low_pc(_gpio_readirq)
.dwattr DW$47, DW_AT_high_pc(0x00)
.dwattr DW$47, DW_AT_begin_file("GPIO.c")
.dwattr DW$47, DW_AT_begin_line(0xc0)
.dwattr DW$47, DW_AT_begin_column(0x05)
.dwpsn "GPIO.c",193,3
.dwfde DW$CIE
;*****************************************************************************
;* FUNCTION NAME: gpio_readirq *
;* *
;* Regs Modified : A1,V9,SP,SR *
;* Regs Used : A1,V9,SP,SR *
;* Local Frame Size : 0 Args + 24 Auto + 0 Save = 24 byte *
;*****************************************************************************
_gpio_readirq:
;* --------------------------------------------------------------------------*
.dwcfa 0x0e, 0
.dwcfa 0x09, 26, 14
SUB SP, SP, #24
.dwcfa 0x0e, 24
;* A1 assigned to _module_num
DW$48 .dwtag DW_TAG_formal_parameter, DW_AT_name("module_num"), DW_AT_symbol_name("_module_num")
.dwattr DW$48, DW_AT_type(*DW$T$10)
.dwattr DW$48, DW_AT_location[DW_OP_reg0]
DW$49 .dwtag DW_TAG_variable, DW_AT_name("module_num"), DW_AT_symbol_name("_module_num")
.dwattr DW$49, DW_AT_type(*DW$T$10)
.dwattr DW$49, DW_AT_location[DW_OP_breg13 0]
DW$50 .dwtag DW_TAG_variable, DW_AT_name("temp"), DW_AT_symbol_name("_temp")
.dwattr DW$50, DW_AT_type(*DW$T$11)
.dwattr DW$50, DW_AT_location[DW_OP_breg13 4]
DW$51 .dwtag DW_TAG_variable, DW_AT_name("num"), DW_AT_symbol_name("_num")
.dwattr DW$51, DW_AT_type(*DW$T$11)
.dwattr DW$51, DW_AT_location[DW_OP_breg13 8]
DW$52 .dwtag DW_TAG_variable, DW_AT_name("gpio_irq_num"), DW_AT_symbol_name("_gpio_irq_num")
.dwattr DW$52, DW_AT_type(*DW$T$11)
.dwattr DW$52, DW_AT_location[DW_OP_breg13 12]
DW$53 .dwtag DW_TAG_variable, DW_AT_name("shift_num"), DW_AT_symbol_name("_shift_num")
.dwattr DW$53, DW_AT_type(*DW$T$10)
.dwattr DW$53, DW_AT_location[DW_OP_breg13 16]
DW$54 .dwtag DW_TAG_variable, DW_AT_name("shift_data"), DW_AT_symbol_name("_shift_data")
.dwattr DW$54, DW_AT_type(*DW$T$10)
.dwattr DW$54, DW_AT_location[DW_OP_breg13 20]
STR A1, [SP, #0] ; |193|
.dwpsn "GPIO.c",198,9
MOV V9, #1 ; |198|
STR V9, [SP, #20] ; |198|
.dwpsn "GPIO.c",200,5
LDR V9, [SP, #0] ; |200|
LDR A1, CON13 ; |200|
MOV V9, V9, ASR #1 ; |200|
LDR V9, [A1, +V9, LSL #11] ; |200|
STR V9, [SP, #4] ; |200|
.dwpsn "GPIO.c",202,9
MOV V9, #0 ; |202|
STR V9, [SP, #16] ; |202|
.dwpsn "GPIO.c",202,21
LDR V9, [SP, #16] ; |202|
CMP V9, #31 ; |202|
BGE L20 ; |202|
; |202|
;* --------------------------------------------------------------------------*
;* BEGIN LOOP L17
;*
;* Loop source line : 202
;* Loop closing brace source line : 215
;* Known Minimum Trip Count : 1
;* Known Maximum Trip Count : 4294967295
;* Known Max Trip Count Factor : 1
;* --------------------------------------------------------------------------*
L17:
DW$L$_gpio_readirq$2$B:
.dwpsn "GPIO.c",204,11
LDR V9, [SP, #20] ; |204|
LDR A1, [SP, #4] ; |204|
AND V9, A1, V9 ; |204|
STR V9, [SP, #8] ; |204|
.dwpsn "GPIO.c",205,11
LDR V9, [SP, #20] ; |205|
MOV V9, V9, LSL #1 ; |205|
STR V9, [SP, #20] ; |205|
.dwpsn "GPIO.c",206,11
LDR V9, [SP, #8] ; |206|
CMP V9, #0 ; |206|
BEQ L19 ; |206|
; |206|
DW$L$_gpio_readirq$2$E:
;* --------------------------------------------------------------------------*
.dwpsn "GPIO.c",208,15
LDR V9, [SP, #16] ; |208|
STR V9, [SP, #12] ; |208|
.dwpsn "GPIO.c",209,15
LDR V9, [SP, #0] ; |209|
CMP V9, #1 ; |209|
BNE L18 ; |209|
; |209|
;* --------------------------------------------------------------------------*
.dwpsn "GPIO.c",209,33
LDR A1, [SP, #12] ; |209|
B L21 ; |209|
; |209|
;* --------------------------------------------------------------------------*
L18:
.dwpsn "GPIO.c",210,20
LDR V9, [SP, #12] ; |210|
ADD A1, V9, #32 ; |210|
B L21 ; |210|
; |210|
;* --------------------------------------------------------------------------*
L19:
DW$L$_gpio_readirq$6$B:
.dwpsn "GPIO.c",202,34
LDR V9, [SP, #16] ; |202|
ADD V9, V9, #1 ; |202|
STR V9, [SP, #16] ; |202|
.dwpsn "GPIO.c",202,21
LDR V9, [SP, #16] ; |202|
CMP V9, #31 ; |202|
BLT L17 ; |202|
; |202|
DW$L$_gpio_readirq$6$E:
;* --------------------------------------------------------------------------*
L20:
.dwpsn "GPIO.c",216,5
LDR V9, [SP, #8] ; |216|
CMP V9, #0 ; |216|
BNE L21 ; |216|
; |216|
;* --------------------------------------------------------------------------*
.dwpsn "GPIO.c",216,15
MOV A1, #65 ; |216|
;* --------------------------------------------------------------------------*
L21:
.dwpsn "GPIO.c",219,4
ADD SP, SP, #24 ; |216|
.dwcfa 0x0e, 0
BX LR
DW$55 .dwtag DW_TAG_loop
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -