📄 gpio.asm
字号:
.dwpsn "GPIO.c",85,12
MOV A2, #1 ; |85|
LDR A1, [SP, #12] ; |85|
LDR V9, [SP, #4] ; |85|
ORR V9, A1, A2, LSL V9 ; |85|
LDR A1, [SP, #0] ; |85|
LDR A2, CON3 ; |85|
MOV A1, A1, ASR #1 ; |85|
STR V9, [A2, +A1, LSL #11] ; |85|
.dwpsn "GPIO.c",87,9
B L4 ; |87|
; |87|
;* --------------------------------------------------------------------------*
L3:
.dwpsn "GPIO.c",90,12
LDR V9, [SP, #0] ; |90|
LDR A1, CON1 ; |90|
MOV V9, V9, ASR #1 ; |90|
LDR V9, [A1, +V9, LSL #11] ; |90|
STR V9, [SP, #8] ; |90|
.dwpsn "GPIO.c",91,12
LDR V9, [SP, #4] ; |91|
MOV A2, #1 ; |91|
LDR A1, [SP, #8] ; |91|
SUB V9, V9, #32 ; |91|
BIC V9, A1, A2, LSL V9 ; |91|
LDR A1, [SP, #0] ; |91|
LDR A2, CON1 ; |91|
MOV A1, A1, ASR #1 ; |91|
STR V9, [A2, +A1, LSL #11] ; |91|
.dwpsn "GPIO.c",93,12
LDR V9, [SP, #0] ; |93|
LDR A1, CON3 ; |93|
MOV V9, V9, ASR #1 ; |93|
LDR V9, [A1, +V9, LSL #11] ; |93|
STR V9, [SP, #12] ; |93|
.dwpsn "GPIO.c",94,12
LDR V9, [SP, #4] ; |94|
MOV A2, #1 ; |94|
LDR A1, [SP, #12] ; |94|
SUB V9, V9, #32 ; |94|
ORR V9, A1, A2, LSL V9 ; |94|
LDR A1, [SP, #0] ; |94|
LDR A2, CON3 ; |94|
MOV A1, A1, ASR #1 ; |94|
STR V9, [A2, +A1, LSL #11] ; |94|
.dwpsn "GPIO.c",95,9
;* --------------------------------------------------------------------------*
L4:
.dwpsn "GPIO.c",96,5
ADD SP, SP, #16
.dwcfa 0x0e, 0
BX LR
.dwattr DW$32, DW_AT_end_file("GPIO.c")
.dwattr DW$32, DW_AT_end_line(0x60)
.dwattr DW$32, DW_AT_end_column(0x05)
.dwendentry
.dwendtag DW$32
.sect ".text"
.align 4
.clink
.armfunc _gpio_setirq
.state32
.global _gpio_setirq
DW$39 .dwtag DW_TAG_subprogram, DW_AT_name("gpio_setirq"), DW_AT_symbol_name("_gpio_setirq")
.dwattr DW$39, DW_AT_low_pc(_gpio_setirq)
.dwattr DW$39, DW_AT_high_pc(0x00)
.dwattr DW$39, DW_AT_begin_file("GPIO.c")
.dwattr DW$39, DW_AT_begin_line(0x69)
.dwattr DW$39, DW_AT_begin_column(0x06)
.dwpsn "GPIO.c",106,3
.dwfde DW$CIE
;*****************************************************************************
;* FUNCTION NAME: gpio_setirq *
;* *
;* Regs Modified : A1,A2,V9,SP,SR *
;* Regs Used : A1,A2,A3,V9,SP,SR *
;* Local Frame Size : 0 Args + 16 Auto + 0 Save = 16 byte *
;*****************************************************************************
_gpio_setirq:
;* --------------------------------------------------------------------------*
.dwcfa 0x0e, 0
.dwcfa 0x09, 26, 14
SUB SP, SP, #16
.dwcfa 0x0e, 16
;* A1 assigned to _module_num
DW$40 .dwtag DW_TAG_formal_parameter, DW_AT_name("module_num"), DW_AT_symbol_name("_module_num")
.dwattr DW$40, DW_AT_type(*DW$T$10)
.dwattr DW$40, DW_AT_location[DW_OP_reg0]
;* A2 assigned to _gpio_num
DW$41 .dwtag DW_TAG_formal_parameter, DW_AT_name("gpio_num"), DW_AT_symbol_name("_gpio_num")
.dwattr DW$41, DW_AT_type(*DW$T$10)
.dwattr DW$41, DW_AT_location[DW_OP_reg1]
;* A3 assigned to _trigger_vec
DW$42 .dwtag DW_TAG_formal_parameter, DW_AT_name("trigger_vec"), DW_AT_symbol_name("_trigger_vec")
.dwattr DW$42, DW_AT_type(*DW$T$38)
.dwattr DW$42, DW_AT_location[DW_OP_reg2]
DW$43 .dwtag DW_TAG_variable, DW_AT_name("module_num"), DW_AT_symbol_name("_module_num")
.dwattr DW$43, DW_AT_type(*DW$T$10)
.dwattr DW$43, DW_AT_location[DW_OP_breg13 0]
DW$44 .dwtag DW_TAG_variable, DW_AT_name("gpio_num"), DW_AT_symbol_name("_gpio_num")
.dwattr DW$44, DW_AT_type(*DW$T$10)
.dwattr DW$44, DW_AT_location[DW_OP_breg13 4]
DW$45 .dwtag DW_TAG_variable, DW_AT_name("trigger_vec"), DW_AT_symbol_name("_trigger_vec")
.dwattr DW$45, DW_AT_type(*DW$T$38)
.dwattr DW$45, DW_AT_location[DW_OP_breg13 8]
DW$46 .dwtag DW_TAG_variable, DW_AT_name("temp"), DW_AT_symbol_name("_temp")
.dwattr DW$46, DW_AT_type(*DW$T$11)
.dwattr DW$46, DW_AT_location[DW_OP_breg13 12]
STR A3, [SP, #8] ; |106|
STR A2, [SP, #4] ; |106|
STR A1, [SP, #0] ; |106|
.dwpsn "GPIO.c",111,6
LDR V9, [SP, #4] ; |111|
CMP V9, #32 ; |111|
BGE L10 ; |111|
; |111|
;* --------------------------------------------------------------------------*
.dwpsn "GPIO.c",113,11
LDR V9, [SP, #0] ; |113|
LDR A1, CON1 ; |113|
MOV V9, V9, ASR #1 ; |113|
LDR V9, [A1, +V9, LSL #11] ; |113|
STR V9, [SP, #12] ; |113|
.dwpsn "GPIO.c",114,11
MOV A2, #1 ; |114|
LDR A1, [SP, #12] ; |114|
LDR V9, [SP, #4] ; |114|
ORR V9, A1, A2, LSL V9 ; |114|
LDR A1, [SP, #0] ; |114|
LDR A2, CON1 ; |114|
MOV A1, A1, ASR #1 ; |114|
STR V9, [A2, +A1, LSL #11] ; |114|
.dwpsn "GPIO.c",116,11
LDR V9, [SP, #0] ; |116|
LDR A1, CON4 ; |116|
MOV V9, V9, ASR #1 ; |116|
LDR V9, [A1, +V9, LSL #11] ; |116|
STR V9, [SP, #12] ; |116|
.dwpsn "GPIO.c",117,11
MOV A2, #1 ; |117|
LDR A1, [SP, #12] ; |117|
LDR V9, [SP, #4] ; |117|
ORR V9, A1, A2, LSL V9 ; |117|
LDR A1, [SP, #0] ; |117|
LDR A2, CON4 ; |117|
MOV A1, A1, ASR #1 ; |117|
STR V9, [A2, +A1, LSL #11] ; |117|
.dwpsn "GPIO.c",119,11
LDR V9, [SP, #0] ; |119|
LDR A1, CON5 ; |119|
MOV V9, V9, ASR #1 ; |119|
LDR V9, [A1, +V9, LSL #11] ; |119|
STR V9, [SP, #12] ; |119|
.dwpsn "GPIO.c",120,11
MOV A2, #1 ; |120|
LDR A1, [SP, #12] ; |120|
LDR V9, [SP, #4] ; |120|
ORR V9, A1, A2, LSL V9 ; |120|
LDR A1, [SP, #0] ; |120|
LDR A2, CON5 ; |120|
MOV A1, A1, ASR #1 ; |120|
STR V9, [A2, +A1, LSL #11] ; |120|
.dwpsn "GPIO.c",122,11
B L9 ; |122|
; |122|
;* --------------------------------------------------------------------------*
;* --------------------------------------------------------------------------*
L5:
.dwpsn "GPIO.c",125,19
LDR V9, [SP, #0] ; |125|
LDR A1, CON6 ; |125|
MOV V9, V9, ASR #1 ; |125|
LDR V9, [A1, +V9, LSL #11] ; |125|
STR V9, [SP, #12] ; |125|
.dwpsn "GPIO.c",126,19
MOV A2, #1 ; |126|
LDR A1, [SP, #12] ; |126|
LDR V9, [SP, #4] ; |126|
ORR V9, A1, A2, LSL V9 ; |126|
LDR A1, [SP, #0] ; |126|
LDR A2, CON6 ; |126|
MOV A1, A1, ASR #1 ; |126|
STR V9, [A2, +A1, LSL #11] ; |126|
.dwpsn "GPIO.c",127,20
B L16 ; |127|
; |127|
;* --------------------------------------------------------------------------*
L6:
.dwpsn "GPIO.c",130,19
LDR V9, [SP, #0] ; |130|
LDR A1, CON7 ; |130|
MOV V9, V9, ASR #1 ; |130|
LDR V9, [A1, +V9, LSL #11] ; |130|
STR V9, [SP, #12] ; |130|
.dwpsn "GPIO.c",131,19
MOV A2, #1 ; |131|
LDR A1, [SP, #12] ; |131|
LDR V9, [SP, #4] ; |131|
ORR V9, A1, A2, LSL V9 ; |131|
LDR A1, [SP, #0] ; |131|
LDR A2, CON7 ; |131|
MOV A1, A1, ASR #1 ; |131|
STR V9, [A2, +A1, LSL #11] ; |131|
.dwpsn "GPIO.c",132,20
B L16 ; |132|
; |132|
;* --------------------------------------------------------------------------*
L7:
.dwpsn "GPIO.c",135,19
LDR V9, [SP, #0] ; |135|
LDR A1, CON8 ; |135|
MOV V9, V9, ASR #1 ; |135|
LDR V9, [A1, +V9, LSL #11] ; |135|
STR V9, [SP, #12] ; |135|
.dwpsn "GPIO.c",136,19
MOV A2, #1 ; |136|
LDR A1, [SP, #12] ; |136|
LDR V9, [SP, #4] ; |136|
ORR V9, A1, A2, LSL V9 ; |136|
LDR A1, [SP, #0] ; |136|
LDR A2, CON8 ; |136|
MOV A1, A1, ASR #1 ; |136|
STR V9, [A2, +A1, LSL #11] ; |136|
.dwpsn "GPIO.c",137,20
B L16 ; |137|
; |137|
;* --------------------------------------------------------------------------*
L8:
.dwpsn "GPIO.c",140,19
LDR V9, [SP, #0] ; |140|
LDR A1, CON9 ; |140|
MOV V9, V9, ASR #1 ; |140|
LDR V9, [A1, +V9, LSL #11] ; |140|
STR V9, [SP, #12] ; |140|
.dwpsn "GPIO.c",141,19
MOV A2, #1 ; |141|
LDR A1, [SP, #12] ; |141|
LDR V9, [SP, #4] ; |141|
ORR V9, A1, A2, LSL V9 ; |141|
LDR A1, [SP, #0] ; |141|
LDR A2, CON9 ; |141|
MOV A1, A1, ASR #1 ; |141|
STR V9, [A2, +A1, LSL #11] ; |141|
.dwpsn "GPIO.c",142,20
B L16 ; |142|
; |142|
;* --------------------------------------------------------------------------*
L9:
.dwpsn "GPIO.c",122,11
LDR V9, [SP, #8] ; |122|
CMP V9, #0 ; |122|
BEQ L5 ; |122|
; |122|
;* --------------------------------------------------------------------------*
SUBS V9, V9, #1 ; |122|
BEQ L6 ; |122|
; |122|
;* --------------------------------------------------------------------------*
SUBS V9, V9, #1 ; |122|
BEQ L7 ; |122|
; |122|
;* --------------------------------------------------------------------------*
SUBS V9, V9, #1 ; |122|
BEQ L8 ; |122|
; |122|
;* --------------------------------------------------------------------------*
B L16 ; |122|
; |122|
;* --------------------------------------------------------------------------*
;* --------------------------------------------------------------------------*
L10:
.dwpsn "GPIO.c",148,12
LDR V9, [SP, #0] ; |148|
LDR A1, CON1 ; |148|
MOV V9, V9, ASR #1 ; |148|
LDR V9, [A1, +V9, LSL #11] ; |148|
STR V9, [SP, #12] ; |148|
.dwpsn "GPIO.c",149,12
LDR V9, [SP, #4] ; |149|
MOV A2, #1 ; |149|
LDR A1, [SP, #12] ; |149|
SUB V9, V9, #32 ; |149|
ORR V9, A1, A2, LSL V9 ; |149|
LDR A1, [SP, #0] ; |149|
LDR A2, CON1 ; |149|
MOV A1, A1, ASR #1 ; |149|
STR V9, [A2, +A1, LSL #11] ; |149|
.dwpsn "GPIO.c",151,12
LDR V9, [SP, #0] ; |151|
LDR A1, CON4 ; |151|
MOV V9, V9, ASR #1 ; |151|
LDR V9, [A1, +V9, LSL #11] ; |151|
STR V9, [SP, #12] ; |151|
.dwpsn "GPIO.c",152,12
LDR V9, [SP, #4] ; |152|
MOV A2, #1 ; |152|
LDR A1, [SP, #12] ; |152|
SUB V9, V9, #32 ; |152|
ORR V9, A1, A2, LSL V9 ; |152|
LDR A1, [SP, #0] ; |152|
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -