📄 yt_temep.s
字号:
CMP R7,#+5
BCC.N ??WRNBYT_2
MOVS R0,#+1
B.N ??WRNBYT_3
??WRNBYT_2:
STRB R9,[SP, #+0]
MOVS R0,#+0
MOVS R7,R0
??WRNBYT_4:
LDRB R0,[SP, #+0]
BL WRBYT
BL cack
MOVS R6,R0
ADDS R7,R7,#+1
UXTB R6,R6 ;; ZeroExtS R6,R6,#+24,#+24
CMP R6,#+1
BNE.N ??WRNBYT_5
UXTB R7,R7 ;; ZeroExtS R7,R7,#+24,#+24
CMP R7,#+5
BCC.N ??WRNBYT_4
??WRNBYT_5:
UXTB R7,R7 ;; ZeroExtS R7,R7,#+24,#+24
CMP R7,#+5
BCC.N ??WRNBYT_6
MOVS R0,#+1
B.N ??WRNBYT_3
??WRNBYT_6:
MOVS R0,#+0
MOVS R5,R0
??WRNBYT_7:
MOV R0,R10
UXTB R5,R5 ;; ZeroExtS R5,R5,#+24,#+24
UXTB R0,R0 ;; ZeroExtS R0,R0,#+24,#+24
CMP R5,R0
BCS.N ??WRNBYT_8
LDRB R0,[R4, #+0]
BL WRBYT
BL cack
MOVS R6,R0
ADDS R4,R4,#+1
ADDS R5,R5,#+1
B.N ??WRNBYT_7
??WRNBYT_8:
BL stop
MOVS R0,#+0
??WRNBYT_3:
ADD SP,SP,#+8
POP {R4-R10,PC} ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
RDNBYT:
PUSH {R4-R10,LR}
MOV R8,R0
MOV R9,R1
MOV R10,R3
MOVS R4,R2
MOV R0,R8
MOVS R5,R0
MOVS R0,#+0
MOVS R7,R0
??RDNBYT_0:
BL sta
MOVS R0,R5
UXTB R0,R0 ;; ZeroExtS R0,R0,#+24,#+24
BL WRBYT
BL cack
MOVS R6,R0
ADDS R7,R7,#+1
UXTB R6,R6 ;; ZeroExtS R6,R6,#+24,#+24
CMP R6,#+1
BNE.N ??RDNBYT_1
UXTB R7,R7 ;; ZeroExtS R7,R7,#+24,#+24
CMP R7,#+5
BCC.N ??RDNBYT_0
??RDNBYT_1:
MOV R0,R8
UXTB R0,R0 ;; ZeroExtS R0,R0,#+24,#+24
CMP R0,#+160
BNE.N ??RDNBYT_2
??RDNBYT_3:
MOV R0,R9
UXTB R0,R0 ;; ZeroExtS R0,R0,#+24,#+24
BL WRBYT
BL cack
MOVS R6,R0
ADDS R7,R7,#+1
UXTB R6,R6 ;; ZeroExtS R6,R6,#+24,#+24
CMP R6,#+1
BNE.N ??RDNBYT_2
UXTB R7,R7 ;; ZeroExtS R7,R7,#+24,#+24
CMP R7,#+5
BCC.N ??RDNBYT_3
??RDNBYT_2:
MOV R0,R8
UXTB R0,R0 ;; ZeroExtS R0,R0,#+24,#+24
CMP R0,#+100
BNE.N ??RDNBYT_4
MOVS R0,#+4
MOV R8,R0
B.N ??RDNBYT_5
??RDNBYT_4:
MOVS R0,#+161
MOV R8,R0
??RDNBYT_5:
MOV R0,R8
UXTB R0,R0 ;; ZeroExtS R0,R0,#+24,#+24
CMP R0,#+161
BNE.N ??RDNBYT_6
BL sta
??RDNBYT_6:
MOV R0,R8
UXTB R0,R0 ;; ZeroExtS R0,R0,#+24,#+24
BL WRBYT
BL cack
UXTB R6,R6 ;; ZeroExtS R6,R6,#+24,#+24
CMP R6,R0
BNE.N ??RDNBYT_7
MOVS R0,#+1
B.N ??RDNBYT_8
??RDNBYT_7:
MOVS R0,#+0
??RDNBYT_8:
UXTB R0,R0 ;; ZeroExtS R0,R0,#+24,#+24
ADDS R7,R7,#+1
UXTB R6,R6 ;; ZeroExtS R6,R6,#+24,#+24
CMP R6,#+1
BNE.N ??RDNBYT_9
UXTB R7,R7 ;; ZeroExtS R7,R7,#+24,#+24
CMP R7,#+10
BCC.N ??RDNBYT_6
??RDNBYT_9:
MOVS R0,#+0
MOVS R5,R0
??RDNBYT_10:
UXTB R5,R5 ;; ZeroExtS R5,R5,#+24,#+24
MOV R0,R10
UXTB R0,R0 ;; ZeroExtS R0,R0,#+24,#+24
SUBS R0,R0,#+1
CMP R5,R0
BGE.N ??RDNBYT_11
BL RDBYT
STRB R0,[R4, #+0]
ADDS R4,R4,#+1
BL mack
ADDS R5,R5,#+1
B.N ??RDNBYT_10
??RDNBYT_11:
BL RDBYT
STRB R0,[R4, #+0]
BL mnack
BL stop
POP {R4-R10,PC} ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
ReadYear:
PUSH {R4,LR}
MOVS R4,R0
MOVS R3,#+16
MOVS R2,R4
MOVS R1,#+0
MOVS R0,#+100
BL RDNBYT
POP {R4,PC} ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
WriteYear:
PUSH {R4,LR}
MOVS R4,R0
MOVS R3,#+16
MOVS R2,R4
MOVS R1,#+0
MOVS R0,#+100
BL WRNBYT
POP {R4,PC} ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
InitYear:
PUSH {R0,R1,R4,LR}
MOVS R4,R0
MOVS R3,#+16
MOVS R2,R4
MOVS R1,#+0
MOVS R0,#+100
BL RDNBYT
MOVS R0,#+32
STRB R0,[SP, #+0]
MOVS R3,#+1
MOV R2,SP
MOVS R1,#+224
MOVS R0,#+100
BL WRNBYT
MOVS R0,#+1000
BL delay_nop
MOVS R0,#+0
ADD SP,SP,#+8
POP {R4,PC} ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
ReadFM24C04:
PUSH {R4-R8,LR}
SUB SP,SP,#+24
MOV R8,R0
MOVS R0,#+0
MOVS R4,R0
??ReadFM24C04_0:
UXTH R4,R4 ;; ZeroExtS R4,R4,#+16,#+16
CMP R4,#+3
BCS.N ??ReadFM24C04_1
MOVS R3,#+22
MOV R2,SP
MOVS R1,#+0
MOVS R0,#+160
BL RDNBYT
MOVS R0,#+0
MOVS R6,R0
MOVS R0,#+0
MOVS R5,R0
??ReadFM24C04_2:
UXTH R6,R6 ;; ZeroExtS R6,R6,#+16,#+16
CMP R6,#+20
BCS.N ??ReadFM24C04_3
UXTH R6,R6 ;; ZeroExtS R6,R6,#+16,#+16
MOV R0,SP
LDRB R0,[R0, R6]
ADDS R5,R5,R0
ADDS R6,R6,#+1
B.N ??ReadFM24C04_2
??ReadFM24C04_3:
LDRB R0,[SP, #+20]
UXTH R0,R0 ;; ZeroExtS R0,R0,#+16,#+16
LSLS R7,R0,#+8
LDRB R0,[SP, #+21]
ADDS R7,R7,R0
UXTH R5,R5 ;; ZeroExtS R5,R5,#+16,#+16
UXTH R7,R7 ;; ZeroExtS R7,R7,#+16,#+16
CMP R5,R7
BNE.N ??ReadFM24C04_4
LDRB R0,[SP, #+0]
STRH R0,[R8, #+74]
LDRB R0,[SP, #+1]
STRH R0,[R8, #+100]
LDRB R0,[SP, #+2]
STRH R0,[R8, #+126]
LDRB R0,[SP, #+3]
STRH R0,[R8, #+152]
LDRB R0,[SP, #+4]
STRH R0,[R8, #+26]
LDRB R0,[SP, #+5]
STRH R0,[R8, #+28]
LDRB R0,[SP, #+6]
STRH R0,[R8, #+30]
LDRB R0,[SP, #+7]
STRH R0,[R8, #+32]
LDRB R0,[SP, #+8]
STRH R0,[R8, #+24]
LDRB R0,[SP, #+9]
MOVS R1,#+256
MULS R0,R1,R0
STRH R0,[R8, #+34]
LDRH R0,[R8, #+34]
LDRB R1,[SP, #+10]
ADDS R0,R0,R1
STRH R0,[R8, #+34]
LDRB R0,[SP, #+11]
STRH R0,[R8, #+36]
LDRB R0,[SP, #+12]
STRH R0,[R8, #+0]
LDRB R0,[SP, #+13]
STRH R0,[R8, #+4]
LDRB R0,[SP, #+14]
STRH R0,[R8, #+2]
MOVS R0,#+0
B.N ??ReadFM24C04_5
??ReadFM24C04_4:
MOVS R3,#+22
LDR.N R2,??ReadFM24C04_6 ;; FM_TAB
MOVS R1,#+0
MOVS R0,#+160
BL WRNBYT
MOVS R0,#+1000
BL delay_nop
ADDS R4,R4,#+1
B.N ??ReadFM24C04_0
??ReadFM24C04_1:
MOVS R0,#+1
??ReadFM24C04_5:
ADD SP,SP,#+24
POP {R4-R8,PC} ;; return
Nop
DATA
??ReadFM24C04_6:
DC32 FM_TAB
SECTION `.XML`:CODE:NOROOT(2)
THUMB
WriteFM24C04:
PUSH {R4-R7,LR}
SUB SP,SP,#+28
MOVS R4,R0
MOVS R5,R1
UXTH R4,R4 ;; ZeroExtS R4,R4,#+16,#+16
CMP R4,#+100
BEQ.N ??WriteFM24C04_0
MOVS R0,#+0
B.N ??WriteFM24C04_1
??WriteFM24C04_0:
LDRH R0,[R5, #+74]
STRB R0,[SP, #+0]
LDRH R0,[R5, #+100]
STRB R0,[SP, #+1]
LDRH R0,[R5, #+126]
STRB R0,[SP, #+2]
LDRH R0,[R5, #+152]
STRB R0,[SP, #+3]
LDRH R0,[R5, #+26]
STRB R0,[SP, #+4]
LDRH R0,[R5, #+28]
STRB R0,[SP, #+5]
LDRH R0,[R5, #+30]
STRB R0,[SP, #+6]
LDRH R0,[R5, #+32]
STRB R0,[SP, #+7]
LDRH R0,[R5, #+24]
STRB R0,[SP, #+8]
LDRH R0,[R5, #+34]
MOVS R1,#+256
SDIV R0,R0,R1
STRB R0,[SP, #+9]
LDRH R0,[R5, #+34]
STRB R0,[SP, #+10]
LDRH R0,[R5, #+36]
STRB R0,[SP, #+11]
LDRH R0,[R5, #+0]
STRB R0,[SP, #+12]
LDRH R0,[R5, #+4]
STRB R0,[SP, #+13]
LDRH R0,[R5, #+2]
STRB R0,[SP, #+14]
MOVS R0,#+0
MOVS R6,R0
MOVS R0,#+0
MOVS R7,R0
??WriteFM24C04_2:
UXTH R6,R6 ;; ZeroExtS R6,R6,#+16,#+16
CMP R6,#+20
BCS.N ??WriteFM24C04_3
UXTH R6,R6 ;; ZeroExtS R6,R6,#+16,#+16
MOV R0,SP
LDRB R0,[R0, R6]
ADDS R7,R7,R0
ADDS R6,R6,#+1
B.N ??WriteFM24C04_2
??WriteFM24C04_3:
UXTH R7,R7 ;; ZeroExtS R7,R7,#+16,#+16
LSRS R0,R7,#+8
STRB R0,[SP, #+20]
MOVS R0,R7
STRB R0,[SP, #+21]
MOVS R3,#+22
MOV R2,SP
MOVS R1,#+0
MOVS R0,#+160
BL WRNBYT
MOVS R0,#+0
??WriteFM24C04_1:
ADD SP,SP,#+28
POP {R4-R7,PC} ;; return
END
//
// 2 998 bytes in section .XML
// 1 byte in section .bss
// 24 bytes in section .data
//
// 2 998 bytes of CODE memory
// 25 bytes of DATA memory
//
//Errors: none
//Warnings: none
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -