📄 dhry_1.lst
字号:
123
124 void Proc_3 (Rec_Pointer *Ptr_Ref_Par)
125 /******************/
126 /* executed once */
127 /* Ptr_Ref_Par becomes Ptr_Glob */
128 {
129 if (Ptr_Glob != Null)
\ 00000044 D81096E5 LDR R1,[R6, #+216]
\ 00000048 000051E3 CMP R1,#+0x0
130 *Ptr_Ref_Par = Ptr_Glob->Ptr_Comp;
\ 0000004C 00209115 LDRNE R2,[R1, #+0]
\ 00000050 00208015 STRNE R2,[R0, #+0]
131 Proc_7 (10, Int_Glob, &Ptr_Glob->variant.var_1.Int_Comp);
\ 00000054 D80096E5 LDR R0,[R6, #+216]
\ 00000058 0C2080E2 ADD R2,R0,#+0xC
\ 0000005C D01096E5 LDR R1,[R6, #+208]
\ 00000060 0A00A0E3 MOV R0,#+0xA
\ 00000064 ........ BL Proc_7
132 } /* Proc_3 */
\ 00000068 0400D5E5 LDRB R0,[R5, #+4]
\ 0000006C 000050E3 CMP R0,#+0x0
\ 00000070 0C00001A BNE ??Proc_1_2
\ 00000074 0600A0E3 MOV R0,#+0x6
\ 00000078 0C0085E5 STR R0,[R5, #+12]
\ 0000007C 081085E2 ADD R1,R5,#+0x8
\ 00000080 0800D4E5 LDRB R0,[R4, #+8]
\ 00000084 ........ BL Proc_6
\ 00000088 D80096E5 LDR R0,[R6, #+216]
\ 0000008C 001090E5 LDR R1,[R0, #+0]
\ 00000090 001085E5 STR R1,[R5, #+0]
\ 00000094 0C2085E2 ADD R2,R5,#+0xC
\ 00000098 0A10A0E3 MOV R1,#+0xA
\ 0000009C 0C0095E5 LDR R0,[R5, #+12]
\ 000000A0 ........ BL Proc_7
\ 000000A4 7080BDE8 LDMIA SP!,{R4-R6,PC} ;; return
\ ??Proc_1_2:
\ 000000A8 000094E5 LDR R0,[R4, #+0]
\ 000000AC 3020A0E3 MOV R2,#+0x30
\ ??Proc_1_3:
\ 000000B0 042052E2 SUBS R2,R2,#+0x4
\ 000000B4 021090E7 LDR R1,[R0, R2]
\ 000000B8 021084E7 STR R1,[R4, R2]
\ 000000BC FBFFFF1A BNE ??Proc_1_3
\ 000000C0 7080BDE8 LDMIA SP!,{R4-R6,PC} ;; return
\ 000000C4 DATA
\ ??Proc_1_0:
\ 000000C4 ........ DC32 Arr_1_Glob
\ In segment NEARFUNC_A, align 4, keep-with-next
\ 00000000 CODE32
\ Proc_2:
\ 00000000 10002DE9 STMDB SP!,{R4} ;; Push
\ 00000004 002090E5 LDR R2,[R0, #+0]
\ 00000008 0A2082E2 ADD R2,R2,#+0xA
\ 0000000C 30309FE5 LDR R3,??Proc_2_0 ;; #Arr_1_Glob
\ 00000010 C840D3E5 LDRB R4,[R3, #+200]
\ 00000014 410054E3 CMP R4,#+0x41
\ 00000018 0400001A BNE ??Proc_2_1
\ 0000001C 011042E2 SUB R1,R2,#+0x1
\ 00000020 D02093E5 LDR R2,[R3, #+208]
\ 00000024 021041E0 SUB R1,R1,R2
\ 00000028 001080E5 STR R1,[R0, #+0]
\ 0000002C 020000EA B ??Proc_2_2
\ ??Proc_2_1:
\ 00000030 FF1001E2 AND R1,R1,#+0xFF ;; Zero extend
\ 00000034 000051E3 CMP R1,#+0x0
\ 00000038 FCFFFF1A BNE ??Proc_2_1
\ ??Proc_2_2:
\ 0000003C 1000BDE8 LDMIA SP!,{R4} ;; Pop
\ 00000040 0EF0A0E1 MOV PC,LR ;; return
\ 00000044 DATA
\ ??Proc_2_0:
\ 00000044 ........ DC32 Arr_1_Glob
\ In segment NEARFUNC_A, align 4
\ 00000000 CODE32
\ Proc_3:
\ 00000000 00402DE9 STMDB SP!,{LR} ;; Push
\ 00000004 24309FE5 LDR R3,??Proc_3_0 ;; #Arr_1_Glob
\ 00000008 D81093E5 LDR R1,[R3, #+216]
\ 0000000C 000051E3 CMP R1,#+0x0
\ 00000010 00209115 LDRNE R2,[R1, #+0]
\ 00000014 00208015 STRNE R2,[R0, #+0]
\ 00000018 D80093E5 LDR R0,[R3, #+216]
\ 0000001C 0C2080E2 ADD R2,R0,#+0xC
\ 00000020 D01093E5 LDR R1,[R3, #+208]
\ 00000024 0A00A0E3 MOV R0,#+0xA
\ 00000028 ........ BL Proc_7
\ 0000002C 0080BDE8 LDMIA SP!,{PC} ;; return
\ 00000030 DATA
\ ??Proc_3_0:
\ 00000030 ........ DC32 Arr_1_Glob
133
134
\ In segment NEARFUNC_A, align 4
\ 00000000 CODE32
135 void Proc_4 ( void )
136 /*******/
137 /* executed once */
138 {
139 Boolean Bool_Loc;
140
141 Bool_Loc = Ch_1_Glob == 'A';
\ Proc_4:
\ 00000000 28009FE5 LDR R0,??Proc_4_0 ;; #Arr_1_Glob
\ 00000004 C810D0E5 LDRB R1,[R0, #+200]
\ 00000008 410051E3 CMP R1,#+0x41
\ 0000000C 0110A003 MOVEQ R1,#+0x1
\ 00000010 0010A013 MOVNE R1,#+0x0
\ 00000014 0120A0E1 MOV R2,R1
142 Bool_Glob = Bool_Loc | Bool_Glob;
\ 00000018 CC1090E5 LDR R1,[R0, #+204]
\ 0000001C 021081E1 ORR R1,R1,R2
\ 00000020 CC1080E5 STR R1,[R0, #+204]
143 Ch_2_Glob = 'B';
\ 00000024 4210A0E3 MOV R1,#+0x42
\ 00000028 C910C0E5 STRB R1,[R0, #+201]
144 } /* Proc_4 */
\ 0000002C 0EF0A0E1 MOV PC,LR ;; return
\ 00000030 DATA
\ ??Proc_4_0:
\ 00000030 ........ DC32 Arr_1_Glob
145
146
\ In segment NEARFUNC_A, align 4
\ 00000000 CODE32
147 void Proc_5 ( void )
148 /*******/
149 {
150 Ch_1_Glob = 'A';
\ Proc_5:
\ 00000000 10009FE5 LDR R0,??Proc_5_0 ;; #Arr_1_Glob
\ 00000004 4110A0E3 MOV R1,#+0x41
\ 00000008 C810C0E5 STRB R1,[R0, #+200]
151 Bool_Glob = false;
\ 0000000C 0010A0E3 MOV R1,#+0x0
\ 00000010 CC1080E5 STR R1,[R0, #+204]
152 } /* Proc_5 */
\ 00000014 0EF0A0E1 MOV PC,LR ;; return
\ 00000018 DATA
\ ??Proc_5_0:
\ 00000018 ........ DC32 Arr_1_Glob
153
154
155 //int main ( void )
\ In segment NEARFUNC_A, align 4, keep-with-next
\ 00000000 CODE32
156 void testloop ( int Number_Of_Runs )
157 /*****/
158
159 /* main program, corresponds to procedures */
160 /* Main and Proc_0 in the Ada version */
161 {
\ testloop:
\ 00000000 F0432DE9 STMDB SP!,{R4-R9,LR} ;; Push
\ 00000004 44D04DE2 SUB SP,SP,#+0x44
\ 00000008 0040A0E1 MOV R4,R0
162 One_Fifty Int_1_Loc;
163 REG One_Fifty Int_2_Loc;
164 One_Fifty Int_3_Loc;
165 REG char Ch_Index;
166 Enumeration Enum_Loc;
167 Str_30 Str_1_Loc;
168 Str_30 Str_2_Loc;
169 REG int Run_Index;
170
171
172 /* Initializations */
173 Next_Ptr_Glob = (Rec_Pointer) malloc (sizeof (Rec_Type));
\ 0000000C A0519FE5 LDR R5,??testloop_0 ;; #Arr_1_Glob
\ 00000010 3000A0E3 MOV R0,#+0x30
\ 00000014 ........ BL malloc
\ 00000018 D40085E5 STR R0,[R5, #+212]
174 Ptr_Glob = (Rec_Pointer) malloc (sizeof (Rec_Type));
\ 0000001C 3000A0E3 MOV R0,#+0x30
\ 00000020 ........ BL malloc
\ 00000024 D80085E5 STR R0,[R5, #+216]
175
176 Ptr_Glob->Ptr_Comp = Next_Ptr_Glob;
\ 00000028 D40095E5 LDR R0,[R5, #+212]
\ 0000002C D81095E5 LDR R1,[R5, #+216]
\ 00000030 000081E5 STR R0,[R1, #+0]
177 Ptr_Glob->Discr = Ident_1;
\ 00000034 0000A0E3 MOV R0,#+0x0
\ 00000038 D81095E5 LDR R1,[R5, #+216]
\ 0000003C 0400C1E5 STRB R0,[R1, #+4]
178 Ptr_Glob->variant.var_1.Enum_Comp = Ident_3;
\ 00000040 0200A0E3 MOV R0,#+0x2
\ 00000044 D81095E5 LDR R1,[R5, #+216]
\ 00000048 0800C1E5 STRB R0,[R1, #+8]
179 Ptr_Glob->variant.var_1.Int_Comp = 40;
\ 0000004C 2800A0E3 MOV R0,#+0x28
\ 00000050 D81095E5 LDR R1,[R5, #+216]
\ 00000054 0C0081E5 STR R0,[R1, #+12]
180 strcpy (Ptr_Glob->variant.var_1.Str_Comp,
181 "DHRYSTONE PROGRAM, SOME STRING");
\ 00000058 58019FE5 LDR R0,??testloop_0+4 ;; #`?<Constant "DHRYSTONE PROGRAM, SO...">`
\ 0000005C D81095E5 LDR R1,[R5, #+216]
\ 00000060 101081E2 ADD R1,R1,#+0x10
\ ??testloop_1:
\ 00000064 ........ LDRB R2,[R0], #+1
\ 00000068 ........ STRB R2,[R1], #+1
\ 0000006C 000052E3 CMP R2,#+0x0
\ 00000070 FBFFFF1A BNE ??testloop_1
182 strcpy (Str_1_Loc, "DHRYSTONE PROGRAM, 1'ST STRING");
\ 00000074 40019FE5 LDR R0,??testloop_0+8 ;; #`?<Constant "DHRYSTONE PROGRAM, 1\\'...">`
\ 00000078 24108DE2 ADD R1,SP,#+0x24
\ ??testloop_2:
\ 0000007C ........ LDRB R2,[R0], #+1
\ 00000080 ........ STRB R2,[R1], #+1
\ 00000084 000052E3 CMP R2,#+0x0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -