📄 display.s
字号:
LDR.N R1,??initLCDM_0 ;; 0x40010c0c
STR R0,[R1, #+0]
LDR.N R0,??DataTable27 ;; 0x4001080c
LDR R0,[R0, #+0]
MVNS R1,#+4096
ANDS R1,R1,R0
LDR.N R0,??DataTable27 ;; 0x4001080c
STR R1,[R0, #+0]
LDR.N R0,??DataTable27 ;; 0x4001080c
LDR R0,[R0, #+0]
MVNS R1,#+2048
ANDS R1,R1,R0
LDR.N R0,??DataTable27 ;; 0x4001080c
STR R1,[R0, #+0]
LDR.N R0,??DataTable27 ;; 0x4001080c
LDR R0,[R0, #+0]
MVNS R1,#+256
ANDS R1,R1,R0
LDR.N R0,??DataTable27 ;; 0x4001080c
STR R1,[R0, #+0]
MOVS R0,#+255
BL LcdDataOut
MOVS R0,#+100
BL delay_nop
MOVS R0,#+48
BL LCMCmd
MOVS R0,#+6
BL LCMCmd
MOVS R0,#+1
BL LCMCmd
MOVS R0,#+128
BL LCMCmd
MOVS R0,#+1
BL LCMCmd
MOVS R0,#+100
BL delay_nop
MOVS R0,#+48
BL LCMCmd
MOVS R0,#+192
BL LCMCmd
LDR.N R0,??initLCDM_0+0x4 ;; Init_TAB
BL WritePicture
MOVS R0,#+1000
BL delay_nop
ADD SP,SP,#+4
POP {PC} ;; return
Nop
DATA
??initLCDM_0:
DC32 0x40010c0c
DC32 Init_TAB
SECTION `.XML`:CODE:NOROOT(2)
DATA
??DataTable27:
DC32 0x4001080c
SECTION `.XML`:CODE:NOROOT(2)
THUMB
Display_mode_setion:
PUSH {R4-R6,LR}
MOVS R4,R0
MOVS R5,R1
LDRB R0,[R4, #+2]
ADDS R0,R0,#+1
STRB R0,[R4, #+2]
LDRB R1,[R4, #+4]
UXTB R0,R0 ;; ZeroExtS R0,R0,#+24,#+24
CMP R0,R1
BCC.N ??Display_mode_setion_0
MOVS R0,#+0
STRB R0,[R4, #+2]
LDRB R0,[R4, #+1]
ADDS R0,R0,#+1
STRB R0,[R4, #+1]
MOVS R0,#+1
BL LCMCmd
??Display_mode_setion_0:
LDRB R0,[R4, #+1]
CMP R0,#+14
BCC.N ??Display_mode_setion_1
LDRH R0,[R5, #+16]
LDRH R1,[R5, #+20]
ORRS R1,R1,R0
LDRH R0,[R5, #+18]
ORRS R0,R0,R1
LDRH R1,[R5, #+22]
ORRS R1,R1,R0
LDRH R0,[R5, #+14]
ORRS R0,R0,R1
UXTH R0,R0 ;; ZeroExtS R0,R0,#+16,#+16
CMP R0,#+0
BEQ.N ??Display_mode_setion_2
MOVS R0,#+7
STRB R0,[R4, #+1]
B.N ??Display_mode_setion_1
??Display_mode_setion_2:
MOVS R0,#+8
STRB R0,[R4, #+1]
??Display_mode_setion_1:
LDRB R0,[R4, #+1]
MOVS R6,R0
LDRB R0,[R4, #+1]
CMP R0,#+9
BNE.N ??Display_mode_setion_3
LDRH R0,[R5, #+34]
ANDS R0,R0,#0x70
CMP R0,#+112
BNE.N ??Display_mode_setion_3
MOVS R0,#+10
STRB R0,[R4, #+1]
??Display_mode_setion_3:
LDRB R0,[R4, #+1]
CMP R0,#+10
BNE.N ??Display_mode_setion_4
LDRH R0,[R5, #+34]
ANDS R0,R0,#0x380
CMP R0,#+896
BNE.N ??Display_mode_setion_4
MOVS R0,#+11
STRB R0,[R4, #+1]
??Display_mode_setion_4:
LDRB R0,[R4, #+1]
CMP R0,#+11
BNE.N ??Display_mode_setion_5
LDRH R0,[R5, #+34]
ANDS R0,R0,#0x1C00
CMP R0,#+7168
BNE.N ??Display_mode_setion_5
MOVS R0,#+12
STRB R0,[R4, #+1]
??Display_mode_setion_5:
LDRB R0,[R4, #+1]
CMP R0,#+12
BNE.N ??Display_mode_setion_6
LDRH R0,[R5, #+34]
ANDS R0,R0,#0xE000
CMP R0,#+57344
BNE.N ??Display_mode_setion_6
MOVS R0,#+13
STRB R0,[R4, #+1]
??Display_mode_setion_6:
LDRB R0,[R4, #+1]
CMP R0,#+16
BEQ.N ??Display_mode_setion_7
LDRB R0,[R4, #+1]
CMP R0,#+15
BEQ.N ??Display_mode_setion_7
LDRB R0,[R4, #+1]
CMP R0,#+14
BNE.N ??Display_mode_setion_8
??Display_mode_setion_7:
LDRH R0,[R5, #+34]
ANDS R0,R0,#0x70
CMP R0,#+112
BNE.N ??Display_mode_setion_8
MOVS R0,#+17
STRB R0,[R4, #+1]
??Display_mode_setion_8:
LDRB R0,[R4, #+1]
CMP R0,#+19
BEQ.N ??Display_mode_setion_9
LDRB R0,[R4, #+1]
CMP R0,#+18
BEQ.N ??Display_mode_setion_9
LDRB R0,[R4, #+1]
CMP R0,#+17
BNE.N ??Display_mode_setion_10
??Display_mode_setion_9:
LDRH R0,[R5, #+34]
ANDS R0,R0,#0x380
CMP R0,#+896
BNE.N ??Display_mode_setion_10
MOVS R0,#+20
STRB R0,[R4, #+1]
??Display_mode_setion_10:
LDRB R0,[R4, #+1]
CMP R0,#+22
BEQ.N ??Display_mode_setion_11
LDRB R0,[R4, #+1]
CMP R0,#+21
BEQ.N ??Display_mode_setion_11
LDRB R0,[R4, #+1]
CMP R0,#+20
BNE.N ??Display_mode_setion_12
??Display_mode_setion_11:
LDRH R0,[R5, #+34]
ANDS R0,R0,#0x1C00
CMP R0,#+7168
BNE.N ??Display_mode_setion_12
MOVS R0,#+23
STRB R0,[R4, #+1]
??Display_mode_setion_12:
LDRB R0,[R4, #+1]
CMP R0,#+25
BEQ.N ??Display_mode_setion_13
LDRB R0,[R4, #+1]
CMP R0,#+24
BEQ.N ??Display_mode_setion_13
LDRB R0,[R4, #+1]
CMP R0,#+23
BNE.N ??Display_mode_setion_14
??Display_mode_setion_13:
LDRH R0,[R5, #+34]
ANDS R0,R0,#0xE000
CMP R0,#+57344
BNE.N ??Display_mode_setion_14
MOVS R0,#+7
STRB R0,[R4, #+1]
??Display_mode_setion_14:
LDRB R0,[R4, #+1]
UXTB R6,R6 ;; ZeroExtS R6,R6,#+24,#+24
CMP R6,R0
BEQ.N ??Display_mode_setion_15
MOVS R0,#+0
STRB R0,[R4, #+2]
MOVS R0,#+1
STRB R0,[R4, #+0]
??Display_mode_setion_15:
POP {R4-R6,PC} ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
ALAMC_mode_setion:
PUSH {R0,R4,R5,LR}
MOVS R4,R0
MOVS R5,R1
UXTH R4,R4 ;; ZeroExtS R4,R4,#+16,#+16
MOVS R0,#+3
MULS R0,R4,R0
UXTH R5,R5 ;; ZeroExtS R5,R5,#+16,#+16
CMP R0,R5
BLT.N ??ALAMC_mode_setion_0
MOVS R0,#+1
BL LCMCmd
MOVS R0,#+2
BL LCMCmd
MOVS R0,#+8
B.N ??ALAMC_mode_setion_1
??ALAMC_mode_setion_0:
MOVS R0,R4
UXTH R0,R0 ;; ZeroExtS R0,R0,#+16,#+16
??ALAMC_mode_setion_1:
ADD SP,SP,#+4
POP {R4,R5,PC} ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
Display_mode_setion_ALAMC:
PUSH {R0,R4,R5,LR}
MOVS R4,R0
MOVS R5,R1
LDRB R0,[R4, #+2]
ADDS R0,R0,#+1
STRB R0,[R4, #+2]
LDRB R1,[R4, #+4]
UXTB R0,R0 ;; ZeroExtS R0,R0,#+24,#+24
CMP R0,R1
BCC.N ??Display_mode_setion_ALAMC_0
MOVS R0,#+0
STRB R0,[R4, #+2]
LDRB R0,[R4, #+1]
ADDS R0,R0,#+1
STRB R0,[R4, #+1]
MOVS R1,R5
UXTH R1,R1 ;; ZeroExtS R1,R1,#+16,#+16
LDRB R0,[R4, #+1]
UXTH R0,R0 ;; ZeroExtS R0,R0,#+16,#+16
BL ALAMC_mode_setion
STRB R0,[R4, #+1]
??Display_mode_setion_ALAMC_0:
ADD SP,SP,#+4
POP {R4,R5,PC} ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
BCD:
PUSH {R0,R4,R5,LR}
UXTH R0,R0 ;; ZeroExtS R0,R0,#+16,#+16
MOVS R1,#+100
SDIV R1,R0,R1
MOVS R4,R1
UXTH R4,R4 ;; ZeroExtS R4,R4,#+16,#+16
CMP R4,#+10
BCC.N ??BCD_0
MOVS R1,#+9
MOVS R4,R1
??BCD_0:
UXTH R4,R4 ;; ZeroExtS R4,R4,#+16,#+16
LSLS R4,R4,#+8
UXTH R0,R0 ;; ZeroExtS R0,R0,#+16,#+16
MOVS R1,#+100
BL __aeabi_idivmod
MOVS R0,R1
UXTH R0,R0 ;; ZeroExtS R0,R0,#+16,#+16
MOVS R1,#+10
SDIV R1,R0,R1
MOVS R5,R1
UXTH R5,R5 ;; ZeroExtS R5,R5,#+16,#+16
LSLS R5,R5,#+4
UXTH R0,R0 ;; ZeroExtS R0,R0,#+16,#+16
MOVS R1,#+10
BL __aeabi_idivmod
MOVS R0,R1
ADDS R1,R4,R5
ADDS R0,R0,R1
UXTH R0,R0 ;; ZeroExtS R0,R0,#+16,#+16
ADD SP,SP,#+4
POP {R4,R5,PC} ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
Disp_Table_Sub:
PUSH {R0,R1,R4-R8,LR}
MOV R8,R2
MOVS R5,R0
MOVS R6,R1
LDRH R0,[R5, #+0]
STRH R0,[SP, #+0]
LDRH R0,[R5, #+0]
BL BCD
MOVS R4,R0
MOVS R0,#+256
UXTH R4,R4 ;; ZeroExtS R4,R4,#+16,#+16
CMP R4,R0
BCC.N ??Disp_Table_Sub_0
LDRH R0,[R5, #+0]
CMP R0,#+254
BCS.N ??Disp_Table_Sub_1
UXTH R4,R4 ;; ZeroExtS R4,R4,#+16,#+16
LSRS R7,R4,#+4
MOVS R2,#+1
MOVS R1,R7
UXTH R1,R1 ;; ZeroExtS R1,R1,#+16,#+16
MOVS R0,R6
UXTB R0,R0 ;; ZeroExtS R0,R0,#+24,#+24
BL WriteOneChar
LSLS R0,R4,#+28 ;; ZeroExtS R0,R4,#+28,#+28
LSRS R0,R0,#+28
MOVS R7,R0
UXTH R7,R7 ;; ZeroExtS R7,R7,#+16,#+16
LDR.N R0,??Disp_Table_Sub_2 ;; ASCII_TAB
LDRB R7,[R0, R7]
MOVS R3,#+0
MOVS R2,#+32
MOVS R1,R7
UXTB R1,R1 ;; ZeroExtS R1,R1,#+24,#+24
MOVS R0,R6
ADDS R0,R0,#+1
UXTB R0,R0 ;; ZeroExtS R0,R0,#+24,#+24
BL WriteASCIIChar
B.N ??Disp_Table_Sub_3
??Disp_Table_Sub_1:
MOVS R3,#+0
MOVS R2,#+45
MOVS R1,#+45
MOVS R0,R6
UXTB R0,R0 ;; ZeroExtS R0,R0,#+24,#+24
BL WriteASCIIChar
MOVS R3,#+0
MOVS R2,#+45
MOVS R1,#+45
MOVS R0,R6
ADDS R0,R0,#+1
UXTB R0,R0 ;; ZeroExtS R0,R0,#+24,#+24
BL WriteASCIIChar
B.N ??Disp_Table_Sub_3
??Disp_Table_Sub_0:
MOVS R2,#+1
MOVS R1,R4
UXTH R1,R1 ;; ZeroExtS R1,R1,#+16,#+16
MOVS R0,R6
UXTB R0,R0 ;; ZeroExtS R0,R0,#+24,#+24
BL WriteOneChar
MOVS R3,#+0
MOVS R2,#+32
MOVS R1,#+32
MOVS R0,R6
ADDS R0,R0,#+1
UXTB R0,R0 ;; ZeroExtS R0,R0,#+24,#+24
BL WriteASCIIChar
??Disp_Table_Sub_3:
ADDS R5,R5,#+2
LDRH R0,[R5, #+0]
BL BCD
MOVS R4,R0
ADDS R6,R6,#+3
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -