📄 yt_key.s
字号:
MOVS R6,R0
MOVS R0,#+10
LDR.N R1,??key_up_39+0x8 ;; Year + 5
LDRB R1,[R1, #+0]
MLA R0,R6,R0,R1
LSLS R6,R0,#+28 ;; ZeroExtS R6,R0,#+28,#+28
LSRS R6,R6,#+28
LSLS R0,R6,#+30
BNE.N ??key_up_49
LDR.N R0,??key_up_39+0x10 ;; Year + 4
LDRB R0,[R0, #+0]
CMP R0,#+42
BCC.N ??key_up_44
LDR.N R0,??key_up_39+0x10 ;; Year + 4
MOVS R1,#+41
STRB R1,[R0, #+0]
B.N ??key_up_44
??key_up_49:
LDR.N R0,??key_up_39+0x10 ;; Year + 4
LDRB R0,[R0, #+0]
CMP R0,#+41
BCC.N ??key_up_44
LDR.N R0,??key_up_39+0x10 ;; Year + 4
MOVS R1,#+40
STRB R1,[R0, #+0]
??key_up_44:
LDRB R0,[R4, #+3]
CMP R0,#+2
BNE.N ??key_up_50
LDR.N R0,??key_up_39+0x10 ;; Year + 4
LDRB R0,[R0, #+0]
CMP R0,#+50
BCC.N ??key_up_51
LDR.N R0,??key_up_39+0x10 ;; Year + 4
MOVS R1,#+49
STRB R1,[R0, #+0]
??key_up_51:
LDR.N R0,??key_up_39+0x10 ;; Year + 4
LDRB R0,[R0, #+0]
ADDS R0,R0,#+1
LDR.N R1,??key_up_39+0x10 ;; Year + 4
STRB R0,[R1, #+0]
LDR.N R0,??key_up_39+0x4 ;; Year + 6
LDRB R0,[R0, #+0]
UXTB R0,R0 ;; ZeroExtS R0,R0,#+24,#+24
LSRS R0,R0,#+4
UXTB R0,R0 ;; ZeroExtS R0,R0,#+24,#+24
MOVS R6,R0
MOVS R0,#+10
LDR.N R1,??key_up_39+0x4 ;; Year + 6
LDRB R1,[R1, #+0]
MLA R0,R6,R0,R1
LSLS R6,R0,#+28 ;; ZeroExtS R6,R0,#+28,#+28
LSRS R6,R6,#+28
LDR.N R0,??key_up_39+0x10 ;; Year + 4
LDRB R0,[R0, #+0]
LSLS R0,R0,#+28 ;; ZeroExtS R0,R0,#+28,#+28
LSRS R0,R0,#+28
CMP R0,#+10
BLT.N ??key_up_52
LDR.N R0,??key_up_39+0x10 ;; Year + 4
LDRB R0,[R0, #+0]
ADDS R0,R0,#+16
LDR.N R1,??key_up_39+0x10 ;; Year + 4
STRB R0,[R1, #+0]
LDR.N R0,??key_up_39+0x10 ;; Year + 4
LDRB R0,[R0, #+0]
ANDS R0,R0,#0xF0
LDR.N R1,??key_up_39+0x10 ;; Year + 4
STRB R0,[R1, #+0]
??key_up_52:
LDR.N R0,??key_up_39+0x8 ;; Year + 5
LDRB R0,[R0, #+0]
UXTB R0,R0 ;; ZeroExtS R0,R0,#+24,#+24
LSRS R0,R0,#+4
UXTB R0,R0 ;; ZeroExtS R0,R0,#+24,#+24
MOVS R7,R0
MOVS R0,#+10
LDR.N R1,??key_up_39+0x8 ;; Year + 5
LDRB R1,[R1, #+0]
MLA R0,R7,R0,R1
LSLS R7,R0,#+28 ;; ZeroExtS R7,R0,#+28,#+28
LSRS R7,R7,#+28
UXTH R7,R7 ;; ZeroExtS R7,R7,#+16,#+16
MOVS R0,#+2
MULS R0,R7,R0
LDR.N R1,??key_up_39+0xC ;; Year_TAB
LDRH R0,[R1, R0]
LDR.N R1,??key_up_39+0x10 ;; Year + 4
LDRB R1,[R1, #+0]
UXTH R1,R1 ;; ZeroExtS R1,R1,#+16,#+16
CMP R0,R1
BCS.N ??key_up_50
LSLS R0,R6,#+30
BNE.N ??key_up_53
LDR.N R0,??key_up_39+0x8 ;; Year + 5
LDRB R0,[R0, #+0]
CMP R0,#+2
BNE.N ??key_up_53
LDR.N R0,??key_up_39+0x10 ;; Year + 4
LDRB R0,[R0, #+0]
CMP R0,#+42
BCC.N ??key_up_50
LDR.N R0,??key_up_39+0x10 ;; Year + 4
MOVS R1,#+1
STRB R1,[R0, #+0]
B.N ??key_up_50
??key_up_53:
LDR.N R0,??key_up_39+0x10 ;; Year + 4
MOVS R1,#+1
STRB R1,[R0, #+0]
??key_up_50:
LDRB R0,[R4, #+3]
CMP R0,#+3
BNE.N ??key_up_54
LDR.N R0,??key_up_55 ;; Year + 3
LDRB R0,[R0, #+0]
CMP R0,#+7
BCC.N ??key_up_56
LDR.N R0,??key_up_55 ;; Year + 3
MOVS R1,#+6
STRB R1,[R0, #+0]
??key_up_56:
LDR.N R0,??key_up_55 ;; Year + 3
LDRB R0,[R0, #+0]
ADDS R0,R0,#+1
LDR.N R1,??key_up_55 ;; Year + 3
STRB R0,[R1, #+0]
UXTB R0,R0 ;; ZeroExtS R0,R0,#+24,#+24
CMP R0,#+7
BCC.N ??key_up_54
LDR.N R0,??key_up_55 ;; Year + 3
MOVS R1,#+0
STRB R1,[R0, #+0]
??key_up_54:
LDRB R0,[R4, #+3]
CMP R0,#+4
BNE.N ??key_up_57
LDR.N R0,??key_up_55+0x4 ;; Year + 2
LDRB R0,[R0, #+0]
CMP R0,#+37
BCC.N ??key_up_58
LDR.N R0,??key_up_55 ;; Year + 3
MOVS R1,#+36
STRB R1,[R0, #+0]
??key_up_58:
LDR.N R0,??key_up_55+0x4 ;; Year + 2
LDRB R0,[R0, #+0]
ADDS R0,R0,#+1
LDR.N R1,??key_up_55+0x4 ;; Year + 2
STRB R0,[R1, #+0]
LDR.N R0,??key_up_55+0x4 ;; Year + 2
LDRB R0,[R0, #+0]
LSLS R0,R0,#+28 ;; ZeroExtS R0,R0,#+28,#+28
LSRS R0,R0,#+28
CMP R0,#+10
BLT.N ??key_up_59
LDR.N R0,??key_up_55+0x4 ;; Year + 2
LDRB R0,[R0, #+0]
ADDS R0,R0,#+16
LDR.N R1,??key_up_55+0x4 ;; Year + 2
STRB R0,[R1, #+0]
LDR.N R0,??key_up_55+0x4 ;; Year + 2
LDRB R0,[R0, #+0]
ANDS R0,R0,#0xF0
LDR.N R1,??key_up_55+0x4 ;; Year + 2
STRB R0,[R1, #+0]
??key_up_59:
LDR.N R0,??key_up_55+0x4 ;; Year + 2
LDRB R0,[R0, #+0]
CMP R0,#+36
BCC.N ??key_up_57
LDR.N R0,??key_up_55+0x4 ;; Year + 2
MOVS R1,#+0
STRB R1,[R0, #+0]
??key_up_57:
LDRB R0,[R4, #+3]
CMP R0,#+5
BNE.N ??key_up_60
LDR.N R0,??key_up_55+0x8 ;; Year + 1
LDRB R0,[R0, #+0]
CMP R0,#+90
BCC.N ??key_up_61
LDR.N R0,??key_up_55 ;; Year + 3
MOVS R1,#+89
STRB R1,[R0, #+0]
??key_up_61:
LDR.N R0,??key_up_55+0x8 ;; Year + 1
LDRB R0,[R0, #+0]
ADDS R0,R0,#+1
LDR.N R1,??key_up_55+0x8 ;; Year + 1
STRB R0,[R1, #+0]
LDR.N R0,??key_up_55+0x8 ;; Year + 1
LDRB R0,[R0, #+0]
LSLS R0,R0,#+28 ;; ZeroExtS R0,R0,#+28,#+28
LSRS R0,R0,#+28
CMP R0,#+10
BLT.N ??key_up_62
LDR.N R0,??key_up_55+0x8 ;; Year + 1
LDRB R0,[R0, #+0]
ADDS R0,R0,#+16
LDR.N R1,??key_up_55+0x8 ;; Year + 1
STRB R0,[R1, #+0]
LDR.N R0,??key_up_55+0x8 ;; Year + 1
LDRB R0,[R0, #+0]
ANDS R0,R0,#0xF0
LDR.N R1,??key_up_55+0x8 ;; Year + 1
STRB R0,[R1, #+0]
??key_up_62:
LDR.N R0,??key_up_55+0x8 ;; Year + 1
LDRB R0,[R0, #+0]
CMP R0,#+90
BCC.N ??key_up_60
LDR.N R0,??key_up_55+0x8 ;; Year + 1
MOVS R1,#+0
STRB R1,[R0, #+0]
??key_up_60:
LDR.N R0,??key_up_55+0xC ;; Year
BL WriteYear
B.N ??key_up_10
??key_up_8:
LDRB R0,[R4, #+3]
CMP R0,#+0
BNE.N ??key_up_63
LDRH R0,[R5, #+34]
TST R0,#0x70
BEQ.N ??key_up_64
LDRH R0,[R5, #+34]
LDR.N R1,??key_up_55+0x10 ;; 0xff8f
ANDS R1,R1,R0
STRH R1,[R5, #+34]
B.N ??key_up_63
??key_up_64:
LDRH R0,[R5, #+34]
ORRS R0,R0,#0x70
STRH R0,[R5, #+34]
??key_up_63:
LDRB R0,[R4, #+3]
CMP R0,#+1
BNE.N ??key_up_65
LDRH R0,[R5, #+34]
TST R0,#0x380
BEQ.N ??key_up_66
LDRH R0,[R5, #+34]
LDR.N R1,??key_up_55+0x14 ;; 0xfc7f
ANDS R1,R1,R0
STRH R1,[R5, #+34]
B.N ??key_up_65
??key_up_66:
LDRH R0,[R5, #+34]
ORRS R0,R0,#0x380
STRH R0,[R5, #+34]
??key_up_65:
LDRB R0,[R4, #+3]
CMP R0,#+2
BNE.N ??key_up_67
LDRH R0,[R5, #+34]
TST R0,#0x1C00
BEQ.N ??key_up_68
LDRH R0,[R5, #+34]
LDR.N R1,??key_up_55+0x18 ;; 0xe3ff
ANDS R1,R1,R0
STRH R1,[R5, #+34]
B.N ??key_up_67
DATA
??key_up_39:
DC32 0xfff8
DC32 Year + 6
DC32 Year + 5
DC32 Year_TAB
DC32 Year + 4
THUMB
??key_up_68:
LDRH R0,[R5, #+34]
ORRS R0,R0,#0x1C00
STRH R0,[R5, #+34]
??key_up_67:
LDRB R0,[R4, #+3]
CMP R0,#+3
BNE.N ??key_up_10
LDRH R0,[R5, #+34]
TST R0,#0xE000
BEQ.N ??key_up_69
LDRH R0,[R5, #+34]
LSLS R0,R0,#+19 ;; ZeroExtS R0,R0,#+19,#+19
LSRS R0,R0,#+19
STRH R0,[R5, #+34]
B.N ??key_up_10
??key_up_69:
LDRH R0,[R5, #+34]
ORRS R0,R0,#0xE000
STRH R0,[R5, #+34]
B.N ??key_up_10
??key_up_9:
LDRB R0,[R4, #+3]
CMP R0,#+0
BNE.N ??key_up_70
LDRH R0,[R5, #+34]
EORS R0,R0,#0x10
STRH R0,[R5, #+34]
??key_up_70:
LDRB R0,[R4, #+3]
CMP R0,#+1
BNE.N ??key_up_71
LDRH R0,[R5, #+34]
EORS R0,R0,#0x20
STRH R0,[R5, #+34]
??key_up_71:
LDRB R0,[R4, #+3]
CMP R0,#+2
BNE.N ??key_up_72
LDRH R0,[R5, #+34]
EORS R0,R0,#0x40
STRH R0,[R5, #+34]
??key_up_72:
LDRB R0,[R4, #+3]
CMP R0,#+3
BNE.N ??key_up_73
LDRH R0,[R5, #+34]
EORS R0,R0,#0x80
STRH R0,[R5, #+34]
??key_up_73:
LDRB R0,[R4, #+3]
CMP R0,#+4
BNE.N ??key_up_74
LDRH R0,[R5, #+34]
EORS R0,R0,#0x100
STRH R0,[R5, #+34]
??key_up_74:
LDRB R0,[R4, #+3]
CMP R0,#+5
BNE.N ??key_up_75
LDRH R0,[R5, #+34]
EORS R0,R0,#0x200
STRH R0,[R5, #+34]
??key_up_75:
LDRB R0,[R4, #+3]
CMP R0,#+6
BNE.N ??key_up_76
LDRH R0,[R5, #+34]
EORS R0,R0,#0x400
STRH R0,[R5, #+34]
??key_up_76:
LDRB R0,[R4, #+3]
CMP R0,#+7
BNE.N ??key_up_77
LDRH R0,[R5, #+34]
EORS R0,R0,#0x800
STRH R0,[R5, #+34]
??key_up_77:
LDRB R0,[R4, #+3]
CMP R0,#+8
BNE.N ??key_up_78
LDRH R0,[R5, #+34]
EORS R0,R0,#0x1000
STRH R0,[R5, #+34]
??key_up_78:
LDRB R0,[R4, #+3]
CMP R0,#+9
BNE.N ??key_up_79
LDRH R0,[R5, #+34]
EORS R0,R0,#0x2000
STRH R0,[R5, #+34]
??key_up_79:
LDRB R0,[R4, #+3]
CMP R0,#+10
BNE.N ??key_up_80
LDRH R0,[R5, #+34]
EORS R0,R0,#0x4000
STRH R0,[R5, #+34]
??key_up_80:
LDRB R0,[R4, #+3]
CMP R0,#+11
BNE.N ??key_up_10
LDRH R0,[R5, #+34]
EORS R0,R0,#0x8000
STRH R0,[R5, #+34]
??key_up_10:
MOVS R0,#+0
POP {R4-R8,PC} ;; return
DATA
??key_up_55:
DC32 Year + 3
DC32 Year + 2
DC32 Year + 1
DC32 Year
DC32 0xff8f
DC32 0xfc7f
DC32 0xe3ff
SECTION `.XML`:CODE:NOROOT(2)
THUMB
key_down:
PUSH {R4-R8,LR}
MOV R8,R0
MOVS R4,R1
MOVS R5,R2
LDRB R0,[R4, #+1]
CMP R0,#+0
CMP R0,#+6
BLS.N ??key_down_0
SUBS R0,R0,#+7
CMP R0,#+21
BLS.N ??key_down_1
SUBS R0,R0,#+22
BEQ.W ??key_down_2
SUBS R0,R0,#+1
BEQ.W ??key_down_3
SUBS R0,R0,#+1
BEQ.W ??key_down_4
SUBS R0,R0,#+1
BEQ.W ??key_down_5
SUBS R0,R0,#+1
BEQ.W ??key_down_6
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -