📄 ytep_rf.s
字号:
LDR.N R3,??IsrSend_1+0xC ;; 0x4001100c
STR R0,[R3, #+0]
LDRB R0,[R1, #+24]
LSLS R0,R0,#+28
BPL.N ??IsrSend_9
MOVS R0,#+16
MOVS R2,R0
B.N ??IsrSend_10
??IsrSend_9:
MOVS R0,#+4
MOVS R2,R0
??IsrSend_10:
LDR.N R0,??IsrSend_1+0x10 ;; ??IS + 4
LDRB R0,[R0, #+0]
CMP R0,#+8
BCC.N ??IsrSend_11
MOVS R0,#+1
MOVS R2,R0
??IsrSend_11:
LDR.N R0,??IsrSend_1 ;; ??IS + 3
LDRB R0,[R0, #+0]
ADDS R0,R0,#+1
LDR.N R3,??IsrSend_1 ;; ??IS + 3
STRB R0,[R3, #+0]
UXTB R0,R0 ;; ZeroExtS R0,R0,#+24,#+24
UXTH R0,R0 ;; ZeroExtS R0,R0,#+16,#+16
UXTH R2,R2 ;; ZeroExtS R2,R2,#+16,#+16
CMP R0,R2
BCC.N ??IsrSend_7
LDR.N R0,??IsrSend_1 ;; ??IS + 3
MOVS R3,#+0
STRB R3,[R0, #+0]
LDR.N R0,??IsrSend_1+0x10 ;; ??IS + 4
LDRB R0,[R0, #+0]
ADDS R0,R0,#+1
LDR.N R3,??IsrSend_1+0x10 ;; ??IS + 4
STRB R0,[R3, #+0]
LDRB R0,[R1, #+24]
UXTB R0,R0 ;; ZeroExtS R0,R0,#+24,#+24
LSLS R0,R0,#+1
STRB R0,[R1, #+24]
B.N ??IsrSend_7
??IsrSend_8:
LDR.N R0,??IsrSend_1+0xC ;; 0x4001100c
LDR R0,[R0, #+0]
MVNS R3,#+2048
ANDS R3,R3,R0
LDR.N R0,??IsrSend_1+0xC ;; 0x4001100c
STR R3,[R0, #+0]
LDR.N R0,??IsrSend_1 ;; ??IS + 3
LDRB R0,[R0, #+0]
ADDS R0,R0,#+1
LDR.N R3,??IsrSend_1 ;; ??IS + 3
STRB R0,[R3, #+0]
UXTB R0,R0 ;; ZeroExtS R0,R0,#+24,#+24
CMP R0,#+4
BCC.N ??IsrSend_12
LDR.N R0,??IsrSend_1+0x10 ;; ??IS + 4
LDRB R0,[R0, #+0]
ADDS R0,R0,#+1
LDR.N R3,??IsrSend_1+0x10 ;; ??IS + 4
STRB R0,[R3, #+0]
LDR.N R0,??IsrSend_1 ;; ??IS + 3
MOVS R3,#+0
STRB R3,[R0, #+0]
??IsrSend_12:
LDR.N R0,??IsrSend_1+0x10 ;; ??IS + 4
LDRB R0,[R0, #+0]
CMP R0,#+9
BCC.N ??IsrSend_7
LDR.N R0,??IsrSend_1+0xC ;; 0x4001100c
LDR R0,[R0, #+0]
ORRS R0,R0,#0x800
LDR.N R3,??IsrSend_1+0xC ;; 0x4001100c
STR R0,[R3, #+0]
MOVS R0,#+0
STRB R0,[R1, #+22]
STRB R0,[R1, #+23]
??IsrSend_7:
MOVS R0,#+0
??IsrSend_2:
BX LR ;; return
DATA
??IsrSend_1:
DC32 ??IS + 3
DC32 ??IS + 5
DC32 0x40010c0c
DC32 0x4001100c
DC32 ??IS + 4
SECTION `.bss`:DATA:NOROOT(2)
??IS:
DS8 8
SECTION `.XML`:CODE:NOROOT(2)
THUMB
CHK_RF:
PUSH {R0,R1,R4-R6,LR}
MOVS R4,R0
MOVS R6,R1
LDR.N R0,??CHK_RF_0 ;; ??Timcount
LDRB R0,[R0, #+0]
ADDS R0,R0,#+1
LDR.N R1,??CHK_RF_0 ;; ??Timcount
STRB R0,[R1, #+0]
UXTB R0,R0 ;; ZeroExtS R0,R0,#+24,#+24
CMP R0,#+4
BCS.N ??CHK_RF_1
MOVS R0,#+0
B.N ??CHK_RF_2
??CHK_RF_1:
LDR.N R0,??CHK_RF_0 ;; ??Timcount
MOVS R1,#+0
STRB R1,[R0, #+0]
LDRB R0,[R4, #+25]
CMP R0,#+5
BCC.N ??CHK_RF_3
MOVS R0,#+0
STRB R0,[R4, #+25]
??CHK_RF_3:
LDRB R0,[R4, #+22]
CMP R0,#+0
BEQ.N ??CHK_RF_4
MOVS R1,#+6
MOVS R0,R4
BL cal_crc
MOVS R5,R0
UXTB R5,R5 ;; ZeroExtS R5,R5,#+24,#+24
LDRB R0,[R4, #+25]
LSLS R0,R0,#+30 ;; ZeroExtS R0,R0,#+30,#+30
LSRS R0,R0,#+30
STRB R0,[SP, #+0]
LDRB R0,[R4, #+0]
UXTB R0,R0 ;; ZeroExtS R0,R0,#+24,#+24
LSRS R0,R0,#+6
STRB R0,[SP, #+1]
LDRB R0,[SP, #+0]
LDRB R1,[SP, #+1]
CMP R0,R1
BNE.N ??CHK_RF_5
LDRB R0,[R4, #+6]
UXTH R5,R5 ;; ZeroExtS R5,R5,#+16,#+16
UXTH R0,R0 ;; ZeroExtS R0,R0,#+16,#+16
CMP R5,R0
BNE.N ??CHK_RF_5
LDRB R0,[R4, #+25]
LDR.N R1,??CHK_RF_0+0x4 ;; ??RF_error
MOVS R2,#+0
STRB R2,[R1, R0]
LDRB R0,[R4, #+25]
MOVS R1,#+26
MLA R6,R0,R1,R6
LDRB R0,[R4, #+2]
STRH R0,[R6, #+0]
LDRB R0,[R4, #+0]
LSLS R0,R0,#+28 ;; ZeroExtS R0,R0,#+28,#+28
LSRS R0,R0,#+28
STRH R0,[R6, #+2]
LDRB R0,[R4, #+0]
LSLS R0,R0,#+26
BPL.N ??CHK_RF_6
LDRH R0,[R6, #+2]
ADDS R0,R0,#+21
STRH R0,[R6, #+2]
??CHK_RF_6:
LDRB R0,[R4, #+3]
STRH R0,[R6, #+8]
LDRB R0,[R4, #+1]
UXTB R0,R0 ;; ZeroExtS R0,R0,#+24,#+24
LSRS R0,R0,#+4
UXTB R0,R0 ;; ZeroExtS R0,R0,#+24,#+24
STRH R0,[R6, #+10]
LDRB R0,[R4, #+0]
LSLS R0,R0,#+26
BPL.N ??CHK_RF_7
LDRH R0,[R6, #+10]
ADDS R0,R0,#+21
STRH R0,[R6, #+10]
??CHK_RF_7:
LDRB R0,[R4, #+4]
STRH R0,[R6, #+16]
LDRB R0,[R4, #+1]
LSLS R0,R0,#+28 ;; ZeroExtS R0,R0,#+28,#+28
LSRS R0,R0,#+28
STRH R0,[R6, #+18]
LDRB R0,[R4, #+0]
LSLS R0,R0,#+26
BPL.N ??CHK_RF_5
LDRH R0,[R6, #+18]
ADDS R0,R0,#+21
STRH R0,[R6, #+18]
??CHK_RF_5:
MOVS R0,#+0
STRB R0,[R4, #+22]
??CHK_RF_4:
LDRB R0,[R4, #+25]
LDR.N R1,??CHK_RF_0+0x4 ;; ??RF_error
LDRB R0,[R1, R0]
ADDS R0,R0,#+1
LDRB R1,[R4, #+25]
LDR.N R2,??CHK_RF_0+0x4 ;; ??RF_error
STRB R0,[R2, R1]
UXTB R0,R0 ;; ZeroExtS R0,R0,#+24,#+24
CMP R0,#+5
BCC.N ??CHK_RF_8
LDRB R0,[R4, #+25]
MOVS R1,#+26
MLA R6,R0,R1,R6
MOVS R0,#+255
STRH R0,[R6, #+0]
MOVS R0,#+255
STRH R0,[R6, #+2]
MOVS R0,#+255
STRH R0,[R6, #+8]
MOVS R0,#+255
STRH R0,[R6, #+10]
MOVS R0,#+255
STRH R0,[R6, #+16]
MOVS R0,#+255
STRH R0,[R6, #+18]
??CHK_RF_8:
LDRB R0,[R4, #+25]
ADDS R0,R0,#+1
STRB R0,[R4, #+25]
UXTB R0,R0 ;; ZeroExtS R0,R0,#+24,#+24
CMP R0,#+5
BCC.N ??CHK_RF_9
MOVS R0,#+0
STRB R0,[R4, #+25]
??CHK_RF_9:
LDRB R0,[R4, #+25]
UXTB R0,R0 ;; ZeroExtS R0,R0,#+24,#+24
LSLS R0,R0,#+2
STRB R0,[SP, #+0]
LDRB R0,[R4, #+25]
EORS R0,R0,#0x3
STRB R0,[SP, #+1]
LDRB R0,[SP, #+0]
LDRB R1,[SP, #+1]
ORRS R1,R1,R0
STRB R1,[R4, #+24]
MOVS R0,#+1
STRB R0,[R4, #+23]
MOVS R0,#+0
STRB R0,[R4, #+22]
LDR.N R0,??DataTable3 ;; 0x40010c0c
LDR R0,[R0, #+0]
ORRS R0,R0,#0x100
LDR.N R1,??DataTable3 ;; 0x40010c0c
STR R0,[R1, #+0]
MOVS R0,#+0
??CHK_RF_2:
ADD SP,SP,#+8
POP {R4-R6,PC} ;; return
Nop
DATA
??CHK_RF_0:
DC32 ??Timcount
DC32 ??RF_error
SECTION `.XML`:CODE:NOROOT(2)
DATA
??DataTable3:
DC32 0x40010c0c
SECTION `.bss`:DATA:NOROOT(0)
??Timcount:
DS8 1
SECTION `.bss`:DATA:NOROOT(2)
??RF_error:
DS8 8
SECTION `.XML`:CODE:NOROOT(2)
THUMB
cal_crc:
PUSH {R0,R4}
MOVS R2,R0
LDR.N R4,??cal_crc_0 ;; 0xffff
MOVS R0,R4
??cal_crc_1:
UXTB R1,R1 ;; ZeroExtS R1,R1,#+24,#+24
CMP R1,#+0
BEQ.N ??cal_crc_2
MOVS R4,R0
LDRB R0,[R2, #+0]
EORS R0,R0,R4
MOVS R4,#+0
MOVS R3,R4
??cal_crc_3:
UXTB R3,R3 ;; ZeroExtS R3,R3,#+24,#+24
CMP R3,#+8
BCS.N ??cal_crc_4
LSLS R4,R0,#+31
BMI.N ??cal_crc_5
UXTH R0,R0 ;; ZeroExtS R0,R0,#+16,#+16
LSRS R0,R0,#+1
B.N ??cal_crc_6
??cal_crc_5:
UXTH R0,R0 ;; ZeroExtS R0,R0,#+16,#+16
LSRS R0,R0,#+1
MOVS R4,R0
LDR.N R0,??cal_crc_0+0x4 ;; 0xa001
EORS R0,R0,R4
??cal_crc_6:
ADDS R3,R3,#+1
B.N ??cal_crc_3
??cal_crc_4:
SUBS R1,R1,#+1
ADDS R2,R2,#+1
B.N ??cal_crc_1
??cal_crc_2:
UXTH R0,R0 ;; ZeroExtS R0,R0,#+16,#+16
ADD SP,SP,#+4
POP {R4}
BX LR ;; return
DATA
??cal_crc_0:
DC32 0xffff
DC32 0xa001
END
//
// 1 140 bytes in section .XML
// 25 bytes in section .bss
//
// 1 140 bytes of CODE memory
// 25 bytes of DATA memory
//
//Errors: none
//Warnings: 2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -