📄 dhry_1.s
字号:
.file "c:/at91/software/projects/bench/source/dhry_1.c"
.option svr4
.option thumb_code
.option inter
.ident "hc4.5a -O7 \n"
.option noswst
.seg ".data",data
.L00DATA:
.align 4
.global Ptr_Glob
Ptr_Glob:
.size Ptr_Glob,0x4
.type Ptr_Glob, @object
.block 0x4
.align 4
.global Next_Ptr_Glob
Next_Ptr_Glob:
.size Next_Ptr_Glob,0x4
.type Next_Ptr_Glob, @object
.block 0x4
.align 4
.global Int_Glob
Int_Glob:
.size Int_Glob,0x4
.type Int_Glob, @object
.block 0x4
.align 4
.global Bool_Glob
Bool_Glob:
.size Bool_Glob,0x4
.type Bool_Glob, @object
.block 0x4
.align 4
.global Ch_1_Glob
Ch_1_Glob:
.size Ch_1_Glob,0x1
.type Ch_1_Glob, @object
.block 0x1
.align 4
.global Ch_2_Glob
Ch_2_Glob:
.size Ch_2_Glob,0x1
.type Ch_2_Glob, @object
.block 0x1
.seg ".bss",bss
.L00BSS:
.global Arr_1_Glob
.align 4
Arr_1_Glob: .block 200
.size Arr_1_Glob, 0xc8
.type Arr_1_Glob, @object
.seg ".data"
.seg ".bss"
.global Arr_2_Glob
.align 4
Arr_2_Glob: .block 0x2710
.size Arr_2_Glob, 0x2710
.type Arr_2_Glob, @object
.seg ".data"
.align 4
.global Reg
Reg:
.size Reg,0x4
.type Reg, @object
.long 0x0
.align 4
.global Begin_Time
Begin_Time:
.size Begin_Time,0x4
.type Begin_Time, @object
.block 0x4
.align 4
.global End_Time
End_Time:
.size End_Time,0x4
.type End_Time, @object
.block 0x4
.align 4
.global User_Time
User_Time:
.size User_Time,0x4
.type User_Time, @object
.block 0x4
.align 4
.global Microseconds
Microseconds:
.size Microseconds,0x4
.type Microseconds, @object
.block 0x4
.align 4
.global Dhrystones_Per_Second
Dhrystones_Per_Second:
.size Dhrystones_Per_Second,0x4
.type Dhrystones_Per_Second, @object
.block 0x4
.seg ".text",text
.option code16,inter
.L00TEXT:
;-------------| Proc_1 |-------------------
.global Proc_1
Proc_1:
.cfa_bf Proc_1
push {%r4-%r7,%lr}
.cfa_push {%r4-%r7,%lr}
sub %sp,#4
.cfa_push 4
mov %r7,%r0
ldr %r5,[%r7, #0]
ldr %r6,[%pc, #.LC01-.-4]
ldr %r4,[%r6, #Ptr_Glob-.L00DATA]
mov %r0,%r5
mov %r1,%r4
ldmia %r1!,{%r2,%r3}
stmia %r0!,{%r2,%r3}
ldmia %r1!,{%r2,%r3}
stmia %r0!,{%r2,%r3}
ldmia %r1!,{%r2,%r3}
stmia %r0!,{%r2,%r3}
ldmia %r1!,{%r2,%r3}
stmia %r0!,{%r2,%r3}
ldmia %r1!,{%r2,%r3}
stmia %r0!,{%r2,%r3}
ldmia %r1!,{%r2,%r3}
stmia %r0!,{%r2,%r3}
mov %r3,#5
str %r3,[%r7, #12]
str %r3,[%r5, #12]
ldr %r3,[%r7, #0]
str %r3,[%r5, #0]
cmp %r4,#0
beq .L02825
ldr %r3,[%r4, #0]
str %r3,[%r5, #0]
ldr %r1,[%r6, #Int_Glob-.L00DATA]
ldr %r4,[%r6, #Ptr_Glob-.L00DATA]
b .L02826
.L02825:
ldr %r1,[%r6, #Int_Glob-.L00DATA]
.L02826:
mov %r0,#10
mov %r2,%r4
add %r2,#12
bl Proc_7
ldrb %r3,[%r5, #4]
cmp %r3,#0
bne .L02828
mov %r3,#6
str %r3,[%r5, #12]
ldrb %r0,[%r7, #8]
mov %r1,%r5
add %r1,#8
bl Proc_6
ldr %r3,[%r6, #Ptr_Glob-.L00DATA]
ldr %r3,[%r3, #0]
str %r3,[%r5, #0]
ldr %r0,[%r5, #12]
mov %r1,#10
mov %r2,%r5
add %r2,#12
bl Proc_7
.cfa_remember_state
add %sp,#4
.cfa_pop 4
pop {%r4-%r7}
.cfa_pop {%r4-%r7}
pop {%r3}
.cfa_pop {%r3}
bx %r3
.cfa_restore_state
.L02828:
ldr %r5,[%r7, #0]
ldmia %r5!,{%r0-%r3}
stmia %r7!,{%r0-%r3}
ldmia %r5!,{%r0-%r3}
stmia %r7!,{%r0-%r3}
ldmia %r5!,{%r0-%r3}
stmia %r7!,{%r0-%r3}
.cfa_remember_state
add %sp,#4
.cfa_pop 4
pop {%r4-%r7}
.cfa_pop {%r4-%r7}
pop {%r3}
.cfa_pop {%r3}
bx %r3
.cfa_restore_state
.cfa_ef
.type Proc_1, @function
.size Proc_1, . - Proc_1
;-------------| Proc_2 |-------------------
.global Proc_2
Proc_2:
.cfa_bf Proc_2
ldr %r2,[%r0, #0]
add %r2,#10
ldr %r1,[%pc, #.LC01-.-4]
ldrb %r3,[%r1, #Ch_1_Glob-.L00DATA]
cmp %r3,#65
bne .L02837
sub %r2,#1
ldr %r3,[%r1, #Int_Glob-.L00DATA]
sub %r2,%r3
str %r2,[%r0, #0]
.L02837:
bx %lr
.cfa_ef
.type Proc_2, @function
.size Proc_2, . - Proc_2
;-------------| Proc_3 |-------------------
.global Proc_3
Proc_3:
.cfa_bf Proc_3
push {%lr}
.cfa_push {%lr}
sub %sp,#4
.cfa_push 4
ldr %r1,[%pc, #.LC01-.-4]
ldr %r2,[%r1, #Ptr_Glob-.L00DATA]
cmp %r2,#0
beq .L02845
ldr %r3,[%r2, #0]
str %r3,[%r0, #0]
ldr %r2,[%r1, #Ptr_Glob-.L00DATA]
.L02845:
mov %r0,#10
ldr %r1,[%r1, #Int_Glob-.L00DATA]
add %r2,#12
bl Proc_7
.cfa_remember_state
add %sp,#4
.cfa_pop 4
pop {%r3}
.cfa_pop {%r3}
bx %r3
.cfa_restore_state
.cfa_ef
.type Proc_3, @function
.size Proc_3, . - Proc_3
;-------------| Proc_4 |-------------------
.global Proc_4
Proc_4:
.cfa_bf Proc_4
ldr %r2,[%pc, #.LC01-.-4]
ldrb %r3,[%r2, #Ch_1_Glob-.L00DATA]
cmp %r3,#65
beq .LL2854
mov %r1,#0
b .LL2855
.LL2854:
mov %r1,#1
.LL2855:
ldr %r3,[%r2, #Bool_Glob-.L00DATA]
orr %r3,%r1
str %r3,[%r2, #Bool_Glob-.L00DATA]
mov %r3,#66
strb %r3,[%r2, #Ch_2_Glob-.L00DATA]
bx %lr
.cfa_ef
.type Proc_4, @function
.size Proc_4, . - Proc_4
;-------------| Proc_5 |-------------------
.global Proc_5
Proc_5:
.cfa_bf Proc_5
mov %r3,#65
ldr %r2,[%pc, #.LC01-.-4]
strb %r3,[%r2, #Ch_1_Glob-.L00DATA]
mov %r3,#0
str %r3,[%r2, #Bool_Glob-.L00DATA]
bx %lr
.cfa_ef
.type Proc_5, @function
.size Proc_5, . - Proc_5
;-------------| testloop |-------------------
.global testloop
testloop:
.cfa_bf testloop
push {%r4-%r7,%lr}
.cfa_push {%r4-%r7,%lr}
sub %sp,#84
.cfa_push 84
str %r0,[%sp, #0]
mov %r0,#48
bl malloc
ldr %r3,[%pc, #.LC01-.-4]
str %r0,[%r3, #Next_Ptr_Glob-.L00DATA]
mov %r0,#48
bl malloc
ldr %r3,[%pc, #.LC01-.-4]
str %r0,[%r3, #Ptr_Glob-.L00DATA]
ldr %r3,[%r3, #Next_Ptr_Glob-.L00DATA]
str %r3,[%r0, #0]
mov %r3,#0
strb %r3,[%r0, #4]
mov %r3,#2
strb %r3,[%r0, #8]
mov %r3,#40
str %r3,[%r0, #12]
add %r5,%pc,#.LC01+4-.-4
mov %r7,%r0
add %r7,#16
mov %r2,#31
.LL28719:
ldrb %r3,[%r5, #0]
strb %r3,[%r7, #0]
add %r5,#1
add %r7,#1
sub %r2,#1
bgt .LL28719
add %r5,%pc,#.LC01+36-.-4
add %r7,%sp,#20
ldmia %r5!,{%r0-%r3}
stmia %r7!,{%r0-%r3}
ldmia %r5!,{%r0-%r3}
stmia %r7!,{%r0-%r3}
mov %r2,#10
ldr %r3,[%pc, #.LC01+0x44-.-4]
str %r2,[%r3, #Arr_2_Glob-0xa4-.L00BSS]
mov %r4,#1
ldr %r3,[%sp, #0]
cmp %r3,#1
blt .L028718
ldr %r3,[%pc, #.LC01+0x48-.-4]
add %r3,#200
str %r3,[%sp, #4]
.L02874:
mov %r2,#65
ldr %r3,[%pc, #.LC01-.-4]
strb %r2,[%r3, #Ch_1_Glob-.L00DATA]
mov %r2,#1
str %r2,[%r3, #Bool_Glob-.L00DATA]
mov %r2,#66
strb %r2,[%r3, #Ch_2_Glob-.L00DATA]
mov %r3,#2
str %r3,[%sp, #8]
mov %r5,#3
add %r6,%pc,#.LC01+0x4c-.-4
add %r7,%sp,#52
ldmia %r6!,{%r0-%r3}
stmia %r7!,{%r0-%r3}
ldmia %r6!,{%r0-%r3}
stmia %r7!,{%r0-%r3}
mov %r2,#1
add %r3,%sp,#16
strb %r2,[%r3, #0]
add %r0,%sp,#20
add %r1,%sp,#52
bl Func_2
neg %r2,%r0
and %r2,%r0
sub %r2,#1
lsr %r2,#31
ldr %r3,[%pc, #.LC01-.-4]
str %r2,[%r3, #Bool_Glob-.L00DATA]
ldr %r2,[%sp, #8]
cmp %r5,%r2
ble .L02878
.L02877:
mov %r3,#5
mul %r3,%r2
sub %r3,%r5
str %r3,[%sp, #12]
mov %r0,%r2
mov %r1,%r5
add %r2,%sp,#12
bl Proc_7
ldr %r3,[%sp, #8]
add %r2,%r3,#1
str %r2,[%sp, #8]
cmp %r5,%r2
bgt .L02877
.L02878:
ldr %r0,[%pc, #.LC01+0x48-.-4]
ldr %r1,[%sp, #4]
ldr %r3,[%sp, #12]
bl Proc_8
ldr %r3,[%pc, #.LC01-.-4]
ldr %r0,[%r3, #Ptr_Glob-.L00DATA]
bl Proc_1
mov %r6,#65
ldr %r3,[%pc, #.LC01-.-4]
ldrb %r3,[%r3, #Ch_2_Glob-.L00DATA]
cmp %r6,%r3
bgt .L028712
.L02879:
mov %r0,%r6
mov %r1,#67
bl Func_1
add %r2,%sp,#16
ldrb %r3,[%r2, #0]
cmp %r3,%r0
bne .L028711
mov %r0,#0
mov %r1,%r2
bl Proc_6
add %r5,%pc,#.LC01+0x6c-.-4
add %r7,%sp,#52
ldmia %r5!,{%r0-%r3}
stmia %r7!,{%r0-%r3}
ldmia %r5!,{%r0-%r3}
stmia %r7!,{%r0-%r3}
ldr %r3,[%pc, #.LC01-.-4]
str %r4,[%r3, #Int_Glob-.L00DATA]
mov %r5,%r4
.L028711:
add %r3,%r6,#1
lsl %r6,%r3,#24
lsr %r6,#24
ldr %r3,[%pc, #.LC01-.-4]
ldrb %r3,[%r3, #Ch_2_Glob-.L00DATA]
cmp %r6,%r3
ble .L02879
.L028712:
ldr %r3,[%sp, #8]
mov %r1,%r3
mul %r1,%r5
ldr %r0,[%sp, #12]
bl _divmod
str %r0,[%sp, #8]
add %r3,%sp,#8
ldr %r2,[%r3, #0]
add %r2,#10
ldr %r3,[%pc, #.LC01-.-4]
ldrb %r3,[%r3, #Ch_1_Glob-.L00DATA]
cmp %r3,#65
bne .L028716
sub %r2,#1
ldr %r3,[%pc, #.LC01-.-4]
ldr %r3,[%r3, #Int_Glob-.L00DATA]
sub %r2,%r3
add %r3,%sp,#8
str %r2,[%r3, #0]
.L028716:
add %r4,#1
ldr %r3,[%sp, #0]
cmp %r4,%r3
ble .L02874
.L028718:
.cfa_remember_state
add %sp,#84
.cfa_pop 84
pop {%r4-%r7}
.cfa_pop {%r4-%r7}
pop {%r3}
.cfa_pop {%r3}
bx %r3
.cfa_restore_state
.cfa_ef
.type testloop, @function
.size testloop, . - testloop
.align 4
.LC01:
.long .L00DATA
.ascii "DHRYSTONE PROGRAM, SOME STRING\0"
.block 0x1
.ascii "DHRYSTONE PROGRAM, 1'ST STRING\0"
.block 0x1
.long .L00BSS+1792
.long .L00BSS
.ascii "DHRYSTONE PROGRAM, 2'ND STRING\0"
.block 0x1
.ascii "DHRYSTONE PROGRAM, 3'RD STRING\0"
.block 0x1
.end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -