📄 dhry_1.s79
字号:
NAME dhry_1
RTMODEL "__code_model", "small"
RTMODEL "__cpu_mode", "arm"
RTMODEL "__data_model", "absolute"
RTMODEL "__endian", "little"
RTMODEL "__rt_version", "2"
RTMODEL "__thumb_aware", "enabled"
RSEG CSTACK:DATA:NOROOT(2)
RSEG HUGE_Z:HUGEDATA:SORT:NOROOT(2)
EXTERN Proc_7
FUNCTION Proc_7,0202H
EXTERN Proc_6
FUNCTION Proc_6,0202H
EXTERN malloc
FUNCTION malloc,010202H
EXTERN Func_1
FUNCTION Func_1,0202H
EXTERN Func_2
FUNCTION Func_2,0202H
EXTERN Proc_8
FUNCTION Proc_8,0202H
PUBWEAK ?init?tab?HUGE_Z
PUBLIC Arr_1_Glob
PUBLIC Arr_2_Glob
PUBLIC Begin_Time
PUBLIC Bool_Glob
PUBLIC Ch_1_Glob
PUBLIC Ch_2_Glob
PUBLIC Dhrystones_Per_Second
PUBLIC End_Time
PUBLIC Int_Glob
PUBLIC Microseconds
PUBLIC Next_Ptr_Glob
PUBLIC Proc_1
FUNCTION Proc_1,0203H
LOCFRAME CSTACK, 16, STACK
PUBLIC Proc_2
FUNCTION Proc_2,0203H
LOCFRAME CSTACK, 4, STACK
PUBLIC Proc_3
FUNCTION Proc_3,0203H
LOCFRAME CSTACK, 4, STACK
PUBLIC Proc_4
FUNCTION Proc_4,0203H
PUBLIC Proc_5
FUNCTION Proc_5,0203H
PUBLIC Ptr_Glob
PUBLIC Reg
PUBLIC User_Time
PUBLIC testloop
FUNCTION testloop,0203H
LOCFRAME CSTACK, 96, STACK
RSEG HUGE_Z:HUGEDATA:SORT:NOROOT(2)
Arr_1_Glob:
DS8 200
Ch_1_Glob:
DS8 1
Ch_2_Glob:
DS8 1
DS8 2
Bool_Glob:
DS8 4
Int_Glob:
DS8 4
Next_Ptr_Glob:
DS8 4
Ptr_Glob:
DS8 4
RSEG HUGE_Z:HUGEDATA:SORT:NOROOT(2)
Arr_2_Glob:
DS8 10000
RSEG HUGE_Z:HUGEDATA:SORT:NOROOT(2)
Reg:
DS8 4
RSEG HUGE_Z:HUGEDATA:SORT:NOROOT(2)
Begin_Time:
DS8 4
RSEG HUGE_Z:HUGEDATA:SORT:NOROOT(2)
End_Time:
DS8 4
RSEG HUGE_Z:HUGEDATA:SORT:NOROOT(2)
User_Time:
DS8 4
RSEG HUGE_Z:HUGEDATA:SORT:NOROOT(2)
Microseconds:
DS8 4
RSEG HUGE_Z:HUGEDATA:SORT:NOROOT(2)
Dhrystones_Per_Second:
DS8 4
RSEG NEARFUNC_A:CODE:NOROOT(2)
CFI Names cfiNames0
CFI StackFrame CFA SP HUGEDATA
CFI Resource R0:32, R1:32, R2:32, R3:32, R4:32, R5:32, R6:32, R7:32
CFI Resource R8:32, R9:32, R10:32, R11:32, R12:32, SP:32, LR:32
CFI VirtualResource RET:32
CFI EndNames cfiNames0
CFI Common cfiCommon0 Using cfiNames0
CFI CodeAlign 4
CFI DataAlign 4
CFI ReturnAddress RET CODE
CFI CFA SP+0
CFI R0 Undefined
CFI R1 Undefined
CFI R2 Undefined
CFI R3 Undefined
CFI R4 SameValue
CFI R5 SameValue
CFI R6 SameValue
CFI R7 SameValue
CFI R8 SameValue
CFI R9 SameValue
CFI R10 SameValue
CFI R11 SameValue
CFI R12 Undefined
CFI LR Undefined
CFI RET LR
CFI EndCommon cfiCommon0
CFI Block cfiBlock0 Using cfiCommon0
CFI Function Proc_1
CODE32
Proc_1:
STMDB SP!,{R4-R6,LR} ;; Push
CFI RET Frame(CFA, -4)
CFI R6 Frame(CFA, -8)
CFI R5 Frame(CFA, -12)
CFI R4 Frame(CFA, -16)
CFI CFA SP+16
MOV R4,R0
LDR R0,[R4, #+0]
MOV R5,R0
LDR R6,??Proc_1_0 ;; #Arr_1_Glob
LDR R1,[R6, #+216]
MOV R3,#+0x30
??Proc_1_1:
SUBS R3,R3,#+0x4
LDR R2,[R1, R3]
STR R2,[R0, R3]
BNE ??Proc_1_1
MOV R0,#+0x5
STR R0,[R4, #+12]
STR R0,[R5, #+12]
LDR R0,[R4, #+0]
STR R0,[R5, #+0]
MOV R0,R5
LDR R1,[R6, #+216]
CMP R1,#+0x0
LDRNE R2,[R1, #+0]
STRNE R2,[R0, #+0]
LDR R0,[R6, #+216]
ADD R2,R0,#+0xC
LDR R1,[R6, #+208]
MOV R0,#+0xA
BL Proc_7
LDRB R0,[R5, #+4]
CMP R0,#+0x0
BNE ??Proc_1_2
MOV R0,#+0x6
STR R0,[R5, #+12]
ADD R1,R5,#+0x8
LDRB R0,[R4, #+8]
BL Proc_6
LDR R0,[R6, #+216]
LDR R1,[R0, #+0]
STR R1,[R5, #+0]
ADD R2,R5,#+0xC
MOV R1,#+0xA
LDR R0,[R5, #+12]
BL Proc_7
LDMIA SP!,{R4-R6,PC} ;; return
??Proc_1_2:
LDR R0,[R4, #+0]
MOV R2,#+0x30
??Proc_1_3:
SUBS R2,R2,#+0x4
LDR R1,[R0, R2]
STR R1,[R4, R2]
BNE ??Proc_1_3
LDMIA SP!,{R4-R6,PC} ;; return
DATA
??Proc_1_0:
DC32 Arr_1_Glob
CFI EndBlock cfiBlock0
RSEG NEARFUNC_A:CODE:NOROOT(2)
CFI Block cfiBlock1 Using cfiCommon0
CFI Function Proc_2
CODE32
Proc_2:
STMDB SP!,{R4} ;; Push
CFI R4 Frame(CFA, -4)
CFI CFA SP+4
LDR R2,[R0, #+0]
ADD R2,R2,#+0xA
LDR R3,??Proc_2_0 ;; #Arr_1_Glob
LDRB R4,[R3, #+200]
CMP R4,#+0x41
BNE ??Proc_2_1
SUB R1,R2,#+0x1
LDR R2,[R3, #+208]
SUB R1,R1,R2
STR R1,[R0, #+0]
B ??Proc_2_2
??Proc_2_1:
AND R1,R1,#+0xFF ;; Zero extend
CMP R1,#+0x0
BNE ??Proc_2_1
??Proc_2_2:
LDMIA SP!,{R4} ;; Pop
CFI R4 SameValue
CFI CFA SP+0
MOV PC,LR ;; return
DATA
??Proc_2_0:
DC32 Arr_1_Glob
CFI EndBlock cfiBlock1
RSEG NEARFUNC_A:CODE:REORDER:NOROOT(2)
CFI Block cfiBlock2 Using cfiCommon0
CFI Function Proc_3
CODE32
Proc_3:
STMDB SP!,{LR} ;; Push
CFI RET Frame(CFA, -4)
CFI CFA SP+4
LDR R3,??Proc_3_0 ;; #Arr_1_Glob
LDR R1,[R3, #+216]
CMP R1,#+0x0
LDRNE R2,[R1, #+0]
STRNE R2,[R0, #+0]
LDR R0,[R3, #+216]
ADD R2,R0,#+0xC
LDR R1,[R3, #+208]
MOV R0,#+0xA
BL Proc_7
LDMIA SP!,{PC} ;; return
DATA
??Proc_3_0:
DC32 Arr_1_Glob
CFI EndBlock cfiBlock2
RSEG NEARFUNC_A:CODE:REORDER:NOROOT(2)
CFI Block cfiBlock3 Using cfiCommon0
CFI Function Proc_4
CODE32
Proc_4:
LDR R0,??Proc_4_0 ;; #Arr_1_Glob
LDRB R1,[R0, #+200]
CMP R1,#+0x41
MOVEQ R1,#+0x1
MOVNE R1,#+0x0
MOV R2,R1
LDR R1,[R0, #+204]
ORR R1,R1,R2
STR R1,[R0, #+204]
MOV R1,#+0x42
STRB R1,[R0, #+201]
MOV PC,LR ;; return
DATA
??Proc_4_0:
DC32 Arr_1_Glob
CFI EndBlock cfiBlock3
RSEG NEARFUNC_A:CODE:REORDER:NOROOT(2)
CFI Block cfiBlock4 Using cfiCommon0
CFI Function Proc_5
CODE32
Proc_5:
LDR R0,??Proc_5_0 ;; #Arr_1_Glob
MOV R1,#+0x41
STRB R1,[R0, #+200]
MOV R1,#+0x0
STR R1,[R0, #+204]
MOV PC,LR ;; return
DATA
??Proc_5_0:
DC32 Arr_1_Glob
CFI EndBlock cfiBlock4
RSEG NEARFUNC_A:CODE:NOROOT(2)
CFI Block cfiBlock5 Using cfiCommon0
CFI Function testloop
CODE32
testloop:
STMDB SP!,{R4-R9,LR} ;; Push
CFI RET Frame(CFA, -4)
CFI R9 Frame(CFA, -8)
CFI R8 Frame(CFA, -12)
CFI R7 Frame(CFA, -16)
CFI R6 Frame(CFA, -20)
CFI R5 Frame(CFA, -24)
CFI R4 Frame(CFA, -28)
CFI CFA SP+28
SUB SP,SP,#+0x44
CFI CFA SP+96
MOV R4,R0
LDR R5,??testloop_0 ;; #Arr_1_Glob
MOV R0,#+0x30
BL malloc
STR R0,[R5, #+212]
MOV R0,#+0x30
BL malloc
STR R0,[R5, #+216]
LDR R0,[R5, #+212]
LDR R1,[R5, #+216]
STR R0,[R1, #+0]
MOV R0,#+0x0
LDR R1,[R5, #+216]
STRB R0,[R1, #+4]
MOV R0,#+0x2
LDR R1,[R5, #+216]
STRB R0,[R1, #+8]
MOV R0,#+0x28
LDR R1,[R5, #+216]
STR R0,[R1, #+12]
LDR R0,??testloop_0+4 ;; #`?<Constant "DHRYSTONE PROGRAM, SO...">`
LDR R1,[R5, #+216]
ADD R1,R1,#+0x10
??testloop_1:
LDRB R2,[R0], #+1
STRB R2,[R1], #+1
CMP R2,#+0x0
BNE ??testloop_1
LDR R0,??testloop_0+8 ;; #`?<Constant "DHRYSTONE PROGRAM, 1\\'...">`
ADD R1,SP,#+0x24
??testloop_2:
LDRB R2,[R0], #+1
STRB R2,[R1], #+1
CMP R2,#+0x0
BNE ??testloop_2
LDR R6,??testloop_0+12 ;; #Arr_2_Glob
MOV R0,#+0xA
STR R0,[R6, #+1628]
MOV R7,#+0x1
B ??testloop_3
??testloop_4:
LDRB R9,[SP, #+4]
MOV R1,#+0x43
MOV R0,R8
BL Func_1
AND R0,R0,#+0xFF ;; Zero extend
CMP R9,R0
BNE ??testloop_5
ADD R1,SP,#+0x4
MOV R0,#+0x0
BL Proc_6
LDR R0,??testloop_0+16 ;; #`?<Constant "DHRYSTONE PROGRAM, 3\\'...">`
ADD R1,SP,#+0x5
??testloop_6:
LDRB R2,[R0], #+1
STRB R2,[R1], #+1
CMP R2,#+0x0
BNE ??testloop_6
STR R7,[R5, #+208]
??testloop_5:
ADD R8,R8,#+0x1
??testloop_7:
LDRB R0,[R5, #+201]
AND R8,R8,#+0xFF ;; Zero extend
CMP R0,R8
BCS ??testloop_4
LDRB R1,[R5, #+200]
CMP R1,#+0x41
BEQ ??testloop_8
??testloop_9:
AND R0,R0,#+0xFF ;; Zero extend
CMP R0,#+0x0
BNE ??testloop_9
??testloop_8:
ADD R7,R7,#+0x1
??testloop_3:
CMP R4,R7
BLT ??testloop_10
MOV R0,#+0x41
STRB R0,[R5, #+200]
MOV R0,#+0x1
STR R0,[R5, #+204]
MOV R0,#+0x42
STRB R0,[R5, #+201]
LDR R0,??testloop_0+20 ;; #`?<Constant "DHRYSTONE PROGRAM, 2\\'...">`
ADD R1,SP,#+0x5
??testloop_11:
LDRB R2,[R0], #+1
STRB R2,[R1], #+1
CMP R2,#+0x0
BNE ??testloop_11
MOV R0,#+0x1
STRB R0,[SP, #+4]
ADD R1,SP,#+0x5
ADD R0,SP,#+0x24
BL Func_2
CMP R0,#+0x0
MOVEQ R0,#+0x1
MOVNE R0,#+0x0
STR R0,[R5, #+204]
MOV R0,#+0x7
STR R0,[SP, #+0]
MOV R2,SP
MOV R1,#+0x3
MOV R0,#+0x2
BL Proc_7
LDR R3,[SP, #+0]
MOV R2,#+0x3
MOV R1,R6
MOV R0,R5
BL Proc_8
LDR R0,[R5, #+216]
BL Proc_1
MOV R8,#+0x41
B ??testloop_7
??testloop_10:
ADD SP,SP,#+0x44 ;; stack cleaning
CFI CFA SP+28
LDMIA SP!,{R4-R9,PC} ;; return
DATA
??testloop_0:
DC32 Arr_1_Glob
DC32 `?<Constant "DHRYSTONE PROGRAM, SO...">`
DC32 `?<Constant "DHRYSTONE PROGRAM, 1\\'...">`
DC32 Arr_2_Glob
DC32 `?<Constant "DHRYSTONE PROGRAM, 3\\'...">`
DC32 `?<Constant "DHRYSTONE PROGRAM, 2\\'...">`
CFI EndBlock cfiBlock5
RSEG HUGE_C:HUGECONST:SORT:NOROOT(0)
`?<Constant "DHRYSTONE PROGRAM, SO...">`:
DC8 "DHRYSTONE PROGRAM, SOME STRING"
RSEG HUGE_C:HUGECONST:SORT:NOROOT(0)
`?<Constant "DHRYSTONE PROGRAM, 1\\'...">`:
DC8 "DHRYSTONE PROGRAM, 1'ST STRING"
RSEG HUGE_C:HUGECONST:SORT:NOROOT(0)
`?<Constant "DHRYSTONE PROGRAM, 2\\'...">`:
DC8 "DHRYSTONE PROGRAM, 2'ND STRING"
RSEG HUGE_C:HUGECONST:SORT:NOROOT(0)
`?<Constant "DHRYSTONE PROGRAM, 3\\'...">`:
DC8 "DHRYSTONE PROGRAM, 3'RD STRING"
RSEG INITTAB:CODE:ROOT(2)
?init?tab?HUGE_Z:
DCD sfe(HUGE_Z) - sfb(HUGE_Z), sfb(HUGE_Z), sfb(HUGE_Z)
END
;
; 124 bytes in segment HUGE_C
; 10 244 bytes in segment HUGE_Z
; 12 bytes in segment INITTAB
; 864 bytes in segment NEARFUNC_A
;
; 864 bytes of CODE memory (+ 12 bytes shared)
; 124 bytes of HUGECONST memory
; 10 244 bytes of HUGEDATA memory
;
;Errors: none
;Warnings: none
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -