📄 424dhrys
字号:
// 0548 ; R25: temp2
// 0548 ; R26: RPC
// 0548 ;
// 0548 ;if(Ptr_Glob != NULL)
EAD04000 // 0548 LRFS R26,RPC
6B01C000 // 054c TST.f R07
FC400005 // 0550 Beq Proc_3_1
61E00009 // 0554 MOV R28,R09
// 0558
// 0558 ; *Ptr_Ref_Par = Ptr_Glob->Ptr_Comp;
0EC9C000 // 0558 LD R25,R07,Ptr_Comp_offset
49000000 // 055c NOP
2FCDC000 // 0560 ST R25,R23,R00
// 0564
// 0564 Proc_3_1:
// 0564 ;Proc_7( 10, Int_Glob, &Ptr_Glob->variant.var_1.Int_Comp);
60D8000A // 0564 MOV R27,10
// 0568 ;D MOV R28,R09
8000018D // 0568 CALL Proc_7
60E9C00C // 056c ADD R29,R07,Int_Comp_offset
// 0570
EB00001A // 0570 RET R26
49000000 // 0574 NOP
// 0578
// 0578 ;******
// 0578 Proc_4:
// 0578 ;******
// 0578 ; R30: RPC
// 0578 ;
// 0578 ;Bool_Loc = Ch_1_Glob == 'A';
// 0578 ;Bool_Glob = Bool_Loc | Bool_Glob;
6A02C041 // 0578 CMP.f R11,'A'
FC000003 // 057c Bne Proc_4_1
EAF04000 // 0580 LRFS R30, RPC
60500001 // 0584 MOV R10,1
// 0588
// 0588 Proc_4_1:
// 0588 ;Ch_2_Glob = 'B';
// 0588
EB00001E // 0588 RET R30
60600042 // 058c MOV R12,'B'
// 0590
// 0590 ;******
// 0590 Proc_5:
// 0590 ;******
// 0590 ; R29: temp
// 0590 ; R30: RPC
EAF04000 // 0590 LRFS R30,RPC
// 0594 ;Ch_1_Glob = 'A';
// 0594 ;D MOV R11,'A'
// 0594
// 0594 ;Bool_Glob = false;
// 0594
EB00001E // 0594 RET R30
61500000 // 0598 CLR R10 ;store 0 in Bool_Glob
// 059c
// 059c
// 059c ;******
// 059c Proc_6:
// 059c ;******
// 059c ; R23: Enum_Val_Par
// 059c ; R24: Enum_Ref_Par
// 059c ; R25: temp1
// 059c ; R26: temp2
// 059c ; R27: RPC
// 059c ;
EAD84000 // 059c LRFS R27,RPC
// 05a0 ;*Enum_Ref_Par = Enum_Val_Par;
2FB80018 // 05a0 ST R23,R00,R24
// 05a4
// 05a4 ;if(!Func_3( Enum_Val_Par))
800001F3 // 05a4 CALL Func_3
61E00017 // 05a8 MOV R28,R23
// 05ac
4AEF4001 // 05ac XOR.f R29,R29,1
FC400005 // 05b0 Beq Proc_6_1
// 05b4
// 05b4 ; *Enum_Ref_Par = Ident_4;
60C80003 // 05b4 MOV R25,Ident_4
2FC80018 // 05b8 ST R25,R00,R24
// 05bc
// 05bc ;not executed
600805BC // 05bc MOV R01,!
FF000000 // 05c0 HALT
// 05c4
// 05c4 Proc_6_1:
// 05c4 ;switch(Enum_Val_Par)
// 05c4 ;{
// 05c4 ; case Ident_1:
6A05C000 // 05c4 CMP.f R23,Ident_1
FC000004 // 05c8 Bne Proc_6_2
// 05cc ; *Enum_Ref_Par = Ident_1;
60C80000 // 05cc MOV R25,Ident_1
// 05d0 ; break;
FC780017 // 05d0 Bt Proc_6_7
2FC80018 // 05d4 ST R25,R00,R24
// 05d8
// 05d8 Proc_6_2:
// 05d8 ; case Ident_2:
6A05C001 // 05d8 CMP.f R23,Ident_2
FC000008 // 05dc Bne Proc_6_4
60C80000 // 05e0 MOV R25,Ident_1
// 05e4
// 05e4 ; if(Int_Glob>100)
6A024064 // 05e4 CMP.f R09,100
FCB00011 // 05e8 Bgt.a Proc_6_7
// 05ec ; *Enum_Ref_Par = Ident_1;
// 05ec ;D MOV R25,Ident_1
2FC80018 // 05ec ST R25,R00,R24
// 05f0
// 05f0 Proc_6_3:
// 05f0 ; else
// 05f0 ; *Enum_Ref_Par = Ident_4;
60C80003 // 05f0 MOV R25,Ident_4
// 05f4 ; break;
FC78000E // 05f4 Bt Proc_6_7
2FC80018 // 05f8 ST R25,R00,R24
// 05fc
// 05fc Proc_6_4:
// 05fc ; case Ident_3:
6A05C002 // 05fc CMP.f R23,Ident_3
FC000004 // 0600 Bne Proc_6_5
// 0604
// 0604 ; *Enum_Ref_Par = Ident_2;
60C80001 // 0604 MOV R25,Ident_2
// 0608 ; break;
FC780009 // 0608 Bt Proc_6_7
2FC80018 // 060c ST R25,R00,R24
// 0610
// 0610 Proc_6_5:
// 0610 ; case Ident_4: break;
6A05C003 // 0610 CMP.f R23,Ident_4
FC400006 // 0614 Beq Proc_6_7
49000000 // 0618 NOP
// 061c
// 061c Proc_6_6:
// 061c ; case Ident_5:
6A05C004 // 061c CMP.f R23,Ident_5
FC000003 // 0620 Bne Proc_6_7
// 0624
// 0624 ; *Enum_Ref_Par = Ident_3;
60C80002 // 0624 MOV R25,Ident_3
2FC80018 // 0628 ST R25,R00,R24
// 062c ; break;
// 062c ;}
// 062c
// 062c Proc_6_7:
EB00001B // 062c RET R27
49000000 // 0630 NOP
// 0634
// 0634 ;******
// 0634 Proc_7:
// 0634 ;******
// 0634 ; R27: Int_1_Par_Val
// 0634 ; R28: Int_2_Par_Val
// 0634 ; R29: Int_Par_Ref
// 0634 ; R30: RPC
// 0634 ;
EAF04000 // 0634 LRFS R30,RPC
// 0638
// 0638 ;Int_Loc = Int_1_Par_Val+2
60DEC002 // 0638 INC R27,2
// 063c
// 063c ;*Int_Par_Ref = Int_2_Par_Val + Int_Loc
61DEC01C // 063c ADD R27,R27,R28
// 0640
EB00001E // 0640 RET R30
2FD8001D // 0644 ST R27,R00,R29
// 0648
// 0648
// 0648 ;******
// 0648 Proc_8:
// 0648 ;******
// 0648 ; R21: Arr_1_Ref
// 0648 ; R22: Arr_2_Ref
// 0648 ; R23: Int_1_Par_Val
// 0648 ; R24: Int_2_Par_Val
// 0648 ; R25: Int_Index
// 0648 ; R26: Int_Loc
// 0648 ; R27: temp1
// 0648 ; R28: temp2
// 0648 ; R29: temp3
// 0648 ; R30: RPC
// 0648 ;
// 0648 ;Int_Loc = Int_1_Par_Val + 5;
60D5C005 // 0648 ADD R26,R23,5
// 064c
// 064c ;Arr_1_Par_Ref [Int_Loc] = Int_2_Par_Val;
50DE8002 // 064c LSL R27,R26,2
2FC5401B // 0650 ST.q R24,R21,R27
// 0654
// 0654 ;Arr_1_Par_Ref[ Int_Loc+1 ] = Arr_1_Par_Ref[ Int_Loc ];
60DE8001 // 0654 ADD R27,R26,1
50DEC002 // 0658 LSL R27,R27,2
2FC5401B // 065c ST.q R24,R21,R27
// 0660
// 0660 ;Arr_1_Par_Ref[ Int_Loc+30 ] = Int_Loc;
60DE801E // 0660 ADD R27,R26,30
50DEC002 // 0664 LSL R27,R27,2
2FD5401B // 0668 ST.q R26,R21,R27
// 066c
// 066c ;for(Int_Index = Int_Loc; Int_Index <= Int_Loc+1, ++Int_Index)
61C8001A // 066c MOV R25,R26
// 0670 ;MUL R27,R26,50*4
// 0670 ;Construct x*200 = x*128 + x*64 + x*8
50DE8007 // 0670 LSL R27,R26,7
50E68006 // 0674 LSL R28,R26,6
61DEC01C // 0678 ADD R27,R27,R28
50E68003 // 067c LSL R28,R26,3
61DEC01C // 0680 ADD R27,R27,R28
61DD801B // 0684 ADD R27,R22,R27 ;R27 = Arr_2_Par_Ref [Int_Loc][0]
// 0688
// 0688 ;...; Int_Index <= Int_Loc+1;...
60E68001 // 0688 ADD R28,R26,1
// 068c Proc_8_1:
6B06401C // 068c CMP.f R25,R28
FC300007 // 0690 Bgt Proc_8_2
68E68001 // 0694 SUB R28,R26,1
// 0698
// 0698 ; Arr_2_Par_Ref [Int_Loc][Int_Index] = Int_Loc;
50E64002 // 0698 LSL R28,R25,2
2FD6C01C // 069c ST.q R26,R27,R28
// 06a0
// 06a0 ;...;++Int_Index)
60CE4001 // 06a0 INC R25
FC7FFFFA // 06a4 Bt Proc_8_1
60E68001 // 06a8 ADD R28,R26,1
// 06ac
// 06ac Proc_8_2:
// 06ac ;Arr_2_Par_Ref [Int_Loc] [Int_Loc-1] += 1;
// 06ac ;D SUB R28,R26,1
50E70002 // 06ac LSL R28,R28,2
0FEEC01C // 06b0 LD.q R29,R27,R28
EAF04000 // 06b4 LRFS R30,RPC
60EF4001 // 06b8 INC R29
2FEEC01C // 06bc ST.q R29,R27,R28
// 06c0
// 06c0 ;Arr_2_Par_Ref [Int_Loc+20][Int_Loc] = Arr_1_Par_Ref[Int_Loc];
60EE8014 // 06c0 ADD R29,R26,20 ;R28 = Int_Loc.b+20
// 06c4 ;MUL R27,R29,50*4 ;R28 = [Int_Loc.b+20].q
// 06c4 ;Construct LSL x*200 = x*$c8 = x*%11001000 = x*(128+64+8) = x*128+x*64+x*8
50DF4007 // 06c4 LSL R27,R29,7 ;a = Int_Loc*2^7
50E74006 // 06c8 LSL R28,R29,6 ;b = Int_Loc*2^6
61DEC01C // 06cc ADD R27,R27,R28 ;c = a+b
50E74003 // 06d0 LSL R28,R29,3 ;a = Int_Loc*2^3
61DEC01C // 06d4 ADD R27,R27,R28 ;R27 = Int_Loc * 200
50E68002 // 06d8 LSL R28,R26,2 ;R28 = [Int_Loc].q
// 06dc ;v ADD R27,R27,R28 ;R27 = [Int_Loc+20][Int_Loc].q
// 06dc
0FED401C // 06dc LD.q R29,R21,R28
61DEC01C // 06e0 ADD R27,R27,R28 ;R27 = [Int_Loc+20][Int_Loc].q
2FED801B // 06e4 ST.q R29,R22,R27
// 06e8
// 06e8 ;Int_Glob = 5;
EB00001E // 06e8 RET R30
60480005 // 06ec MOV R09,5
// 06f0
// 06f0
// 06f0
// 06f0 ;******
// 06f0 Func_1:
// 06f0 ;******
// 06f0 ; R27: Ch_1_Par_Val
// 06f0 ; R28: Ch_2_Par_Val
// 06f0 ; R29: return
// 06f0 ; R30: RPC
// 06f0 ;
// 06f0 ;Ch_1_Loc = Ch_1_Par_Val;
// 06f0 ;Ch_2_Loc = Ch_1_Loc;
// 06f0 ;if(Ch_2_Loc != Ch_2_Par_Val)
6B06C01C // 06f0 CMP.f R27,R28
FC400004 // 06f4 Beq Func_1_1
EAF04000 // 06f8 LRFS R30,RPC
// 06fc
// 06fc ; return(Ident_1);
EB00001E // 06fc RET R30
60E80000 // 0700 MOV R29,Ident_1
// 0704
// 0704 Func_1_1:
// 0704 ;else
// 0704 ;{
// 0704 ;not executed
60080704 // 0704 MOV R01,!
FF000000 // 0708 HALT
// 070c
// 070c ; Ch_1_Glob = Ch_1_Loc;
6158001B // 070c MOV R11,R27
// 0710
// 0710 ; return(Ident_2);
// 0710 ;}
EB00001E // 0710 RET R30
60E80001 // 0714 MOV R29,Ident_2
// 0718
// 0718 ;******
// 0718 Func_2:
// 0718 ;******
// 0718 ; R21: Str_1_Par_Ref
// 0718 ; R22: Str_2_Par_Ref
// 0718 ; R23: return
// 0718 ; R24: Int_Loc
// 0718 ; R25: Ch_Loc
// 0718 ; R26: RPC
// 0718 ;
// 0718 ;Int_Loc = 2;
60C00002 // 0718 MOV R24,2
// 071c
// 071c ;while (Int_Loc <= 2)
6A060002 // 071c CMP.f R24,2
FC30000F // 0720 Bgt Func_2_2
EAD04000 // 0724 LRFS R26,RPC
// 0728
// 0728 ;if(Func_1(Str_1_Par_Ref[Int_Loc],
// 0728 ; Str_2_Par_Ref[Int_Loc+1]) == Ident_1)
01DD4018 // 0728 LD.b R27,R21,R24
// 072c Func_2_1:
61E58018 // 072c ADD R28,R22,R24
02E70000 // 0730 LD.b R28,R28,1
800001BC // 0734 CALL Func_1
49000000 // 0738 NOP
6A074000 // 073c CMP.f R29,Ident_1
FC87FFFB // 0740 Bne.a Func_2_1
01DD4018 // 0744 LD.b R27,R21,R24
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -