📄 pwr_c.txt
字号:
;;;723 /* then */
;;;724 *Enum_Ref_Par = Ident_1;
000848 e3a00000 MOV r0,#0
00084c e5c30000 STRB r0,[r3,#0]
000850 ea000001 B |L1.2140|
;;;725 else *Enum_Ref_Par = Ident_4;
|L1.2132|
000854 e3a00003 MOV r0,#3
000858 e5c30000 STRB r0,[r3,#0]
;;;726 break;
|L1.2140|
00085c ea000006 B |L1.2172|
;;;727 case Ident_3: /* executed */
;;;728 *Enum_Ref_Par = Ident_2;
|L1.2144|
000860 e3a00001 MOV r0,#1
000864 e5c30000 STRB r0,[r3,#0]
;;;729 break;
000868 ea000003 B |L1.2172|
;;;730 case Ident_4: break;
|L1.2156|
00086c ea000002 B |L1.2172|
;;;731 case Ident_5:
;;;732 *Enum_Ref_Par = Ident_3;
|L1.2160|
000870 e3a00002 MOV r0,#2
000874 e5c30000 STRB r0,[r3,#0]
;;;733 break;
000878 e1a00000 NOP
;;;734 } /* switch */
;;;735 } /* Proc_6 */
|L1.2172|
00087c e8bd8010 LDMFD sp!,{r4,pc}
ENDP
Func_1 PROC
;;;791 Capital_Letter Ch_2_Par_Val;
;;;792 {
000880 e92d4010 STMFD sp!,{r4,lr}
000884 e1a02000 MOV r2,r0
000888 e202c0ff AND r12,r2,#0xff ;790
00088c e201e0ff AND lr,r1,#0xff ;790
;;;793 Capital_Letter Ch_1_Loc;
;;;794 Capital_Letter Ch_2_Loc;
;;;795
;;;796 Ch_1_Loc = Ch_1_Par_Val;
000890 e1a0300c MOV r3,r12
;;;797 Ch_2_Loc = Ch_1_Loc;
000894 e1a04003 MOV r4,r3
;;;798 if (Ch_2_Loc != Ch_2_Par_Val)
000898 e1a03004 MOV r3,r4
00089c e154000e CMP r4,lr
0008a0 0a000001 BEQ |L1.2220|
;;;799 /* then, executed */
;;;800 return (Ident_1);
0008a4 e3a00000 MOV r0,#0
;;;801 else /* not executed */
;;;802 {
;;;803 Ch_1_Glob = Ch_1_Loc;
;;;804 return (Ident_2);
;;;805 }
;;;806 } /* Func_1 */
|L1.2216|
0008a8 e8bd8010 LDMFD sp!,{r4,pc}
|L1.2220|
0008ac e59f049c LDR r0,|L1.3408| ;803
0008b0 e5c03000 STRB r3,[r0,#0] ;803 ; Ch_1_Glob
0008b4 e3a00001 MOV r0,#1 ;804
0008b8 eafffffa B |L1.2216| ;804
ENDP
Proc_7 PROC
;;;749 One_Fifty *Int_Par_Ref;
;;;750 {
0008bc e2803002 ADD r3,r0,#2
;;;751 One_Fifty Int_Loc;
;;;752
;;;753 Int_Loc = Int_1_Par_Val + 2;
;;;754 *Int_Par_Ref = Int_2_Par_Val + Int_Loc;
0008c0 e081c003 ADD r12,r1,r3
0008c4 e582c000 STR r12,[r2,#0]
;;;755 } /* Proc_7 */
0008c8 e12fff1e BX lr
ENDP
Proc_3 PROC
;;;634
;;;635 {
0008cc e92d4010 STMFD sp!,{r4,lr}
0008d0 e1a04000 MOV r4,r0
;;;636 if (Ptr_Glob != Null)
0008d4 e59f047c LDR r0,|L1.3416|
0008d8 e5900000 LDR r0,[r0,#0] ; Ptr_Glob
0008dc e3500000 CMP r0,#0
0008e0 0a000003 BEQ |L1.2292|
;;;637 /* then, executed */
;;;638 *Ptr_Ref_Par = Ptr_Glob->Ptr_Comp;
0008e4 e59f046c LDR r0,|L1.3416|
0008e8 e5900000 LDR r0,[r0,#0] ; Ptr_Glob
0008ec e5900000 LDR r0,[r0,#0]
0008f0 e5840000 STR r0,[r4,#0]
;;;639 Proc_7 (10, Int_Glob, &Ptr_Glob->variant.var_1.Int_Comp);
|L1.2292|
0008f4 e59f045c LDR r0,|L1.3416|
0008f8 e5900000 LDR r0,[r0,#0] ; Ptr_Glob
0008fc e280200c ADD r2,r0,#0xc
000900 e59f044c LDR r0,|L1.3412|
000904 e5901000 LDR r1,[r0,#0] ; Int_Glob
000908 e3a0000a MOV r0,#0xa
00090c ebfffffe BL Proc_7
;;;640 } /* Proc_3 */
000910 e8bd8010 LDMFD sp!,{r4,pc}
ENDP
Proc_1 PROC
;;;575 /* executed once */
;;;576 {
000914 e92d4038 STMFD sp!,{r3-r5,lr}
000918 e1a05000 MOV r5,r0
;;;577 REG Rec_Pointer Next_Record = Ptr_Val_Par->Ptr_Comp;
00091c e5954000 LDR r4,[r5,#0]
;;;578 /* == Ptr_Glob_Next */
;;;579 /* Local variable, initialized with Ptr_Val_Par->Ptr_Comp, */
;;;580 /* corresponds to "rename" in Ada, "with" in Pascal */
;;;581
;;;582 structassign (*Ptr_Val_Par->Ptr_Comp, *Ptr_Glob);
000920 e3a02030 MOV r2,#0x30
000924 e59f142c LDR r1,|L1.3416|
000928 e5950000 LDR r0,[r5,#0]
00092c e5911000 LDR r1,[r1,#0] ; Ptr_Glob
000930 ebfffffe BL __rt_memcpy_w
;;;583 Ptr_Val_Par->variant.var_1.Int_Comp = 5;
000934 e3a00005 MOV r0,#5
000938 e585000c STR r0,[r5,#0xc]
;;;584 Next_Record->variant.var_1.Int_Comp
00093c e595000c LDR r0,[r5,#0xc]
000940 e584000c STR r0,[r4,#0xc]
;;;585 = Ptr_Val_Par->variant.var_1.Int_Comp;
;;;586 Next_Record->Ptr_Comp = Ptr_Val_Par->Ptr_Comp;
000944 e5950000 LDR r0,[r5,#0]
000948 e5840000 STR r0,[r4,#0]
;;;587 Proc_3 (&Next_Record->Ptr_Comp);
00094c e1a00004 MOV r0,r4
000950 ebfffffe BL Proc_3
;;;588 /* Ptr_Val_Par->Ptr_Comp->Ptr_Comp
;;;589 == Ptr_Glob->Ptr_Comp */
;;;590 if (Next_Record->Discr == Ident_1)
000954 e5d40004 LDRB r0,[r4,#4]
000958 e3500000 CMP r0,#0
00095c 1a00000d BNE |L1.2456|
;;;591 /* then, executed */
;;;592 {
;;;593 Next_Record->variant.var_1.Int_Comp = 6;
000960 e3a00006 MOV r0,#6
000964 e584000c STR r0,[r4,#0xc]
;;;594 Proc_6 (Ptr_Val_Par->variant.var_1.Enum_Comp,
000968 e5d50008 LDRB r0,[r5,#8]
00096c e2841008 ADD r1,r4,#8
000970 ebfffffe BL Proc_6
;;;595 &Next_Record->variant.var_1.Enum_Comp);
;;;596 Next_Record->Ptr_Comp = Ptr_Glob->Ptr_Comp;
000974 e59f03dc LDR r0,|L1.3416|
000978 e5900000 LDR r0,[r0,#0] ; Ptr_Glob
00097c e5900000 LDR r0,[r0,#0]
000980 e5840000 STR r0,[r4,#0]
;;;597 Proc_7 (Next_Record->variant.var_1.Int_Comp, 10,
000984 e594000c LDR r0,[r4,#0xc]
000988 e284200c ADD r2,r4,#0xc
00098c e3a0100a MOV r1,#0xa
000990 ebfffffe BL Proc_7
000994 ea000003 B |L1.2472|
;;;598 &Next_Record->variant.var_1.Int_Comp);
;;;599 }
;;;600 else /* not executed */
;;;601 structassign (*Ptr_Val_Par, *Ptr_Val_Par->Ptr_Comp);
|L1.2456|
000998 e3a02030 MOV r2,#0x30
00099c e5951000 LDR r1,[r5,#0]
0009a0 e1a00005 MOV r0,r5
0009a4 ebfffffe BL __rt_memcpy_w
;;;602 } /* Proc_1 */
|L1.2472|
0009a8 e8bd8038 LDMFD sp!,{r3-r5,pc}
ENDP
Proc_8 PROC
;;;766 int Int_2_Par_Val;
;;;767 {
0009ac e92d4070 STMFD sp!,{r4-r6,lr}
;;;768 REG One_Fifty Int_Index;
;;;769 REG One_Fifty Int_Loc;
;;;770
;;;771 Int_Loc = Int_1_Par_Val + 5;
0009b0 e282c005 ADD r12,r2,#5
;;;772 Arr_1_Par_Ref [Int_Loc] = Int_2_Par_Val;
0009b4 e780310c STR r3,[r0,r12,LSL #2]
;;;773 Arr_1_Par_Ref [Int_Loc+1] = Arr_1_Par_Ref [Int_Loc];
0009b8 e790410c LDR r4,[r0,r12,LSL #2]
0009bc e080510c ADD r5,r0,r12,LSL #2
0009c0 e5854004 STR r4,[r5,#4]
;;;774 Arr_1_Par_Ref [Int_Loc+30] = Int_Loc;
0009c4 e080410c ADD r4,r0,r12,LSL #2
0009c8 e584c078 STR r12,[r4,#0x78]
;;;775 for (Int_Index = Int_Loc; Int_Index <= Int_Loc+1; ++Int_Index)
0009cc e1a0e00c MOV lr,r12
|L1.2512|
0009d0 e28c4001 ADD r4,r12,#1
0009d4 e15e0004 CMP lr,r4
0009d8 ca000007 BGT |L1.2556|
0009dc ea000001 B |L1.2536|
|L1.2528|
0009e0 e28ee001 ADD lr,lr,#1
0009e4 eafffff9 B |L1.2512|
;;;776 Arr_2_Par_Ref [Int_Loc] [Int_Index] = Int_Loc;
|L1.2536|
0009e8 e3a04019 MOV r4,#0x19
0009ec e0050c94 MUL r5,r4,r12
0009f0 e0814185 ADD r4,r1,r5,LSL #3
0009f4 e784c10e STR r12,[r4,lr,LSL #2]
0009f8 eafffff8 B |L1.2528|
;;;777 Arr_2_Par_Ref [Int_Loc] [Int_Loc-1] += 1;
|L1.2556|
0009fc e3a05019 MOV r5,#0x19
000a00 e0060c95 MUL r6,r5,r12
000a04 e0815186 ADD r5,r1,r6,LSL #3
000a08 e085510c ADD r5,r5,r12,LSL #2
000a0c e2454004 SUB r4,r5,#4
000a10 e5155004 LDR r5,[r5,#-4]
000a14 e2855001 ADD r5,r5,#1
000a18 e5845000 STR r5,[r4,#0]
;;;778 Arr_2_Par_Ref [Int_Loc+20] [Int_Loc] = Arr_1_Par_Ref [Int_Loc];
000a1c e790410c LDR r4,[r0,r12,LSL #2]
000a20 e3a05019 MOV r5,#0x19
000a24 e0060c95 MUL r6,r5,r12
000a28 e0815186 ADD r5,r1,r6,LSL #3
000a2c e085510c ADD r5,r5,r12,LSL #2
000a30 e5854fa0 STR r4,[r5,#0xfa0]
;;;779 Int_Glob = 5;
000a34 e3a04005 MOV r4,#5
000a38 e59f5314 LDR r5,|L1.3412|
000a3c e5854000 STR r4,[r5,#0] ; Int_Glob
;;;780 } /* Proc_8 */
000a40 e8bd8070 LDMFD sp!,{r4-r6,pc}
ENDP
Func_2 PROC
;;;816 Str_30 Str_2_Par_Ref;
;;;817 {
000a44 e92d40f8 STMFD sp!,{r3-r7,lr}
000a48 e1a06000 MOV r6,r0
000a4c e1a07001 MOV r7,r1
;;;818 REG One_Thirty Int_Loc;
;;;819 Capital_Letter Ch_Loc;
;;;820
;;;821 Int_Loc = 2;
000a50 e3a04002 MOV r4,#2
;;;822 while (Int_Loc <= 2) /* loop body executed once */
000a54 e1a00000 NOP
|L1.2648|
000a58 e3540002 CMP r4,#2
000a5c ca000008 BGT |L1.2692|
;;;823 if (Func_1 (Str_1_Par_Ref[Int_Loc],
000a60 e0872004 ADD r2,r7,r4
000a64 e5d21001 LDRB r1,[r2,#1]
000a68 e7d60004 LDRB r0,[r6,r4]
000a6c ebfffffe BL Func_1
000a70 e3500000 CMP r0,#0
000a74 1a000001 BNE |L1.2688|
;;;824 Str_2_Par_Ref[Int_Loc+1]) == Ident_1)
;;;825 /* then, executed */
;;;826 {
;;;827 Ch_Loc = 'A';
000a78 e3a05041 MOV r5,#0x41
;;;828 Int_Loc += 1;
000a7c e2844001 ADD r4,r4,#1
;;;829 } /* if, while */
|L1.2688|
000a80 eafffff4 B |L1.2648|
;;;830 if (Ch_Loc >= 'W' && Ch_Loc < 'Z')
|L1.2692|
000a84 e2450057 SUB r0,r5,#0x57
000a88 e3500003 CMP r0,#3
000a8c 2a000000 BCS |L1.2708|
;;;831 /* then, not executed */
;;;832 Int_Loc = 7;
000a90 e3a04007 MOV r4,#7
;;;833 if (Ch_Loc == 'R')
|L1.2708|
000a94 e3550052 CMP r5,#0x52
000a98 1a000001 BNE |L1.2724|
;;;834 /* then, not executed */
;;;835 return (true);
000a9c e3a00001 MOV r0,#1
;;;836 else /* executed */
;;;837 {
;;;838 if (strcmp (Str_1_Par_Ref, Str_2_Par_Ref) > 0)
;;;839 /* then, not executed */
;;;840 {
;;;841 Int_Loc += 7;
;;;842 Int_Glob = Int_Loc;
;;;843 return (true);
;;;844 }
;;;845 else /* executed */
;;;846 return (false);
;;;847 } /* if Ch_Loc */
;;;848 } /* Func_2 */
|L1.2720|
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -