⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pwr_c.txt

📁 支持三星原产的S3C24A0开发板
💻 TXT
📖 第 1 页 / 共 5 页
字号:
000aa0  e8bd80f8          LDMFD    sp!,{r3-r7,pc}
                  |L1.2724|
000aa4  e1a01007          MOV      r1,r7                 ;838
000aa8  e1a00006          MOV      r0,r6                 ;838
000aac  ebfffffe          BL       strcmp                ;838
000ab0  e3500000          CMP      r0,#0                 ;838
000ab4  da000004          BLE      |L1.2764|             ;838
000ab8  e2844007          ADD      r4,r4,#7              ;841
000abc  e59f0290          LDR      r0,|L1.3412|          ;842
000ac0  e5804000          STR      r4,[r0,#0]            ;842  ; Int_Glob
000ac4  e3a00001          MOV      r0,#1                 ;843
000ac8  eafffff4          B        |L1.2720|             ;843
                  |L1.2764|
000acc  e3a00000          MOV      r0,#0                 ;846
000ad0  eafffff2          B        |L1.2720|             ;846
                          ENDP

                  Proc_4 PROC
;;;645        /* executed once */
;;;646    {
000ad4  e59f1274          LDR      r1,|L1.3408|
;;;647      Boolean Bool_Loc;
;;;648    
;;;649      Bool_Loc = Ch_1_Glob == 'A';
000ad8  e5d11000          LDRB     r1,[r1,#0]  ; Ch_1_Glob
000adc  e3510041          CMP      r1,#0x41
000ae0  1a000001          BNE      |L1.2796|
000ae4  e3a01001          MOV      r1,#1
000ae8  ea000000          B        |L1.2800|
                  |L1.2796|
000aec  e3a01000          MOV      r1,#0
                  |L1.2800|
000af0  e1a00001          MOV      r0,r1
;;;650      Bool_Glob = Bool_Loc | Bool_Glob;
000af4  e59f1260          LDR      r1,|L1.3420|
000af8  e5911000          LDR      r1,[r1,#0]  ; Bool_Glob
000afc  e1801001          ORR      r1,r0,r1
000b00  e59f2254          LDR      r2,|L1.3420|
000b04  e5821000          STR      r1,[r2,#0]  ; Bool_Glob
;;;651      Ch_2_Glob = 'B';
000b08  e3a01042          MOV      r1,#0x42
000b0c  e59f224c          LDR      r2,|L1.3424|
000b10  e5c21000          STRB     r1,[r2,#0]  ; Ch_2_Glob
;;;652    } /* Proc_4 */
000b14  e12fff1e          BX       lr
                          ENDP

                  Proc_5 PROC
;;;657        /* executed once */
;;;658    {
000b18  e3a00041          MOV      r0,#0x41
;;;659      Ch_1_Glob = 'A';
000b1c  e59f122c          LDR      r1,|L1.3408|
000b20  e5c10000          STRB     r0,[r1,#0]  ; Ch_1_Glob
;;;660      Bool_Glob = false;
000b24  e3a00000          MOV      r0,#0
000b28  e59f122c          LDR      r1,|L1.3420|
000b2c  e5810000          STR      r0,[r1,#0]  ; Bool_Glob
;;;661    } /* Proc_5 */
000b30  e12fff1e          BX       lr
                          ENDP

                  dhrystone21 PROC
;;;491      /* Main and Proc_0 in the Ada version             */
;;;492    {
000b34  e92d40f0          STMFD    sp!,{r4-r7,lr}
000b38  e24dd04c          SUB      sp,sp,#0x4c
;;;493            One_Fifty       Int_1_Loc;
;;;494      REG   One_Fifty       Int_2_Loc;
;;;495            One_Fifty       Int_3_Loc;
;;;496      REG   char            Ch_Index;
;;;497            Enumeration     Enum_Loc;
;;;498            Str_30          Str_1_Loc;
;;;499            Str_30          Str_2_Loc;
;;;500      REG   int             Run_Index;
;;;501      REG   int             Number_Of_Runs;
;;;502    
;;;503      /* Initializations */
;;;504    
;;;505      Next_Ptr_Glob = (Rec_Pointer) malloc (sizeof (Rec_Type));
000b3c  e3a00030          MOV      r0,#0x30
000b40  ebfffffe          BL       malloc
000b44  e59f1218          LDR      r1,|L1.3428|
000b48  e5810000          STR      r0,[r1,#0]  ; Next_Ptr_Glob
;;;506      Ptr_Glob = (Rec_Pointer) malloc (sizeof (Rec_Type));
000b4c  e3a00030          MOV      r0,#0x30
000b50  ebfffffe          BL       malloc
000b54  e59f11fc          LDR      r1,|L1.3416|
000b58  e5810000          STR      r0,[r1,#0]  ; Ptr_Glob
;;;507    
;;;508      Ptr_Glob->Ptr_Comp                    = Next_Ptr_Glob;
000b5c  e59f0200          LDR      r0,|L1.3428|
000b60  e5900000          LDR      r0,[r0,#0]  ; Next_Ptr_Glob
000b64  e59f11ec          LDR      r1,|L1.3416|
000b68  e5911000          LDR      r1,[r1,#0]  ; Ptr_Glob
000b6c  e5810000          STR      r0,[r1,#0]
;;;509      Ptr_Glob->Discr                       = Ident_1;
000b70  e3a00000          MOV      r0,#0
000b74  e59f11dc          LDR      r1,|L1.3416|
000b78  e5911000          LDR      r1,[r1,#0]  ; Ptr_Glob
000b7c  e5c10004          STRB     r0,[r1,#4]
;;;510      Ptr_Glob->variant.var_1.Enum_Comp     = Ident_3;
000b80  e3a00002          MOV      r0,#2
000b84  e59f11cc          LDR      r1,|L1.3416|
000b88  e5911000          LDR      r1,[r1,#0]  ; Ptr_Glob
000b8c  e5c10008          STRB     r0,[r1,#8]
;;;511      Ptr_Glob->variant.var_1.Int_Comp      = 40;
000b90  e3a00028          MOV      r0,#0x28
000b94  e59f11bc          LDR      r1,|L1.3416|
000b98  e5911000          LDR      r1,[r1,#0]  ; Ptr_Glob
000b9c  e581000c          STR      r0,[r1,#0xc]
;;;512      strcpy (Ptr_Glob->variant.var_1.Str_Comp, 
000ba0  e3a0201f          MOV      r2,#0x1f
000ba4  e28f1f6f          ADR      r1,|L1.3432|
000ba8  e59f01a8          LDR      r0,|L1.3416|
000bac  e5900000          LDR      r0,[r0,#0]  ; Ptr_Glob
000bb0  e2800010          ADD      r0,r0,#0x10
000bb4  ebfffffe          BL       __rt_memcpy_w
;;;513              "DHRYSTONE PROGRAM, SOME STRING");
;;;514      strcpy (Str_1_Loc, "DHRYSTONE PROGRAM, 1'ST STRING");
000bb8  e3a02020          MOV      r2,#0x20
000bbc  e28f1f71          ADR      r1,|L1.3464|
000bc0  e08d0002          ADD      r0,sp,r2
000bc4  ebfffffe          BL       __rt_memcpy_w
;;;515    
;;;516      Arr_2_Glob [8][7] = 10;
000bc8  e3a0000a          MOV      r0,#0xa
000bcc  e59f11d4          LDR      r1,|L1.3496|
000bd0  e581065c          STR      r0,[r1,#0x65c]  ; Arr_2_Glob
;;;517            /* Was missing in published program. Without this statement,    */
;;;518            /* Arr_2_Glob [8][7] would have an undefined value.             */
;;;519            /* Warning: With 16-Bit processors and Number_Of_Runs > 32000,  */
;;;520            /* overflow may occur for this array element.                   */
;;;521    
;;;522      Number_Of_Runs = 10000;
000bd4  e59f71d0          LDR      r7,|L1.3500|
;;;523    
;;;524      for (Run_Index = 1; Run_Index <= Number_Of_Runs; ++Run_Index)
000bd8  e3a05001          MOV      r5,#1
                  |L1.3036|
000bdc  e1550007          CMP      r5,r7
000be0  ca000058          BGT      |L1.3400|
000be4  ea000001          B        |L1.3056|
                  |L1.3048|
000be8  e2855001          ADD      r5,r5,#1
000bec  eafffffa          B        |L1.3036|
;;;525      {
;;;526    
;;;527        Proc_5();
                  |L1.3056|
000bf0  ebfffffe          BL       Proc_5
;;;528        Proc_4();
000bf4  ebfffffe          BL       Proc_4
;;;529          /* Ch_1_Glob == 'A', Ch_2_Glob == 'B', Bool_Glob == true */
;;;530        Int_1_Loc = 2;
000bf8  e3a00002          MOV      r0,#2
000bfc  e58d0048          STR      r0,[sp,#0x48]
;;;531        Int_2_Loc = 3;
000c00  e3a04003          MOV      r4,#3
;;;532        strcpy (Str_2_Loc, "DHRYSTONE PROGRAM, 2'ND STRING");
000c04  e3a02020          MOV      r2,#0x20
000c08  e28f1f68          ADR      r1,|L1.3504|
000c0c  e1a0000d          MOV      r0,sp
000c10  ebfffffe          BL       __rt_memcpy_w
;;;533        Enum_Loc = Ident_2;
000c14  e3a00001          MOV      r0,#1
000c18  e5cd0040          STRB     r0,[sp,#0x40]
;;;534        Bool_Glob = ! Func_2 (Str_1_Loc, Str_2_Loc);
000c1c  e1a0100d          MOV      r1,sp
000c20  e28d0020          ADD      r0,sp,#0x20
000c24  ebfffffe          BL       Func_2
000c28  e3500000          CMP      r0,#0
000c2c  1a000001          BNE      |L1.3128|
000c30  e3a00001          MOV      r0,#1
000c34  ea000000          B        |L1.3132|
                  |L1.3128|
000c38  e3a00000          MOV      r0,#0
                  |L1.3132|
000c3c  e59f1118          LDR      r1,|L1.3420|
000c40  e5810000          STR      r0,[r1,#0]  ; Bool_Glob
;;;535          /* Bool_Glob == 1 */
;;;536        while (Int_1_Loc < Int_2_Loc)  /* loop body executed once */
000c44  e1a00000          NOP      
                  |L1.3144|
000c48  e59d0048          LDR      r0,[sp,#0x48]
000c4c  e1500004          CMP      r0,r4
000c50  aa00000b          BGE      |L1.3204|
;;;537        {
;;;538          Int_3_Loc = 5 * Int_1_Loc - Int_2_Loc;
000c54  e59d0048          LDR      r0,[sp,#0x48]
000c58  e0800100          ADD      r0,r0,r0,LSL #2
000c5c  e0400004          SUB      r0,r0,r4
000c60  e58d0044          STR      r0,[sp,#0x44]
;;;539            /* Int_3_Loc == 7 */
;;;540          Proc_7 (Int_1_Loc, Int_2_Loc, &Int_3_Loc);
000c64  e28d2044          ADD      r2,sp,#0x44
000c68  e1a01004          MOV      r1,r4
000c6c  e59d0048          LDR      r0,[sp,#0x48]
000c70  ebfffffe          BL       Proc_7
;;;541            /* Int_3_Loc == 7 */
;;;542          Int_1_Loc += 1;
000c74  e59d0048          LDR      r0,[sp,#0x48]
000c78  e2800001          ADD      r0,r0,#1
000c7c  e58d0048          STR      r0,[sp,#0x48]
;;;543        } /* while */
000c80  eafffff0          B        |L1.3144|
;;;544          /* Int_1_Loc == 3, Int_2_Loc == 3, Int_3_Loc == 7 */
;;;545        Proc_8 (Arr_1_Glob, Arr_2_Glob, Int_1_Loc, Int_3_Loc);
                  |L1.3204|
000c84  e59f111c          LDR      r1,|L1.3496|
000c88  e59f0140          LDR      r0,|L1.3536|
000c8c  e59d2048          LDR      r2,[sp,#0x48]
000c90  e59d3044          LDR      r3,[sp,#0x44]
000c94  ebfffffe          BL       Proc_8
;;;546          /* Int_Glob == 5 */
;;;547        Proc_1 (Ptr_Glob);
000c98  e59f00b8          LDR      r0,|L1.3416|
000c9c  e5900000          LDR      r0,[r0,#0]  ; Ptr_Glob
000ca0  ebfffffe          BL       Proc_1
;;;548        for (Ch_Index = 'A'; Ch_Index <= Ch_2_Glob; ++Ch_Index)
000ca4  e3a06041          MOV      r6,#0x41
                  |L1.3240|
000ca8  e59f00b0          LDR      r0,|L1.3424|
000cac  e5d00000          LDRB     r0,[r0,#0]  ; Ch_2_Glob
000cb0  e1560000          CMP      r6,r0
000cb4  8a000015          BHI      |L1.3344|
000cb8  ea000002          B        |L1.3272|
                  |L1.3260|
000cbc  e2860001          ADD      r0,r6,#1
000cc0  e20060ff          AND      r6,r0,#0xff
000cc4  eafffff7          B        |L1.3240|
;;;549                                 /* loop body executed twice */
;;;550        {
;;;551          if (Enum_Loc == Func_1 (Ch_Index, 'C'))
                  |L1.3272|
000cc8  e3a01043          MOV      r1,#0x43
000ccc  e1a00006          MOV      r0,r6
000cd0  ebfffffe          BL       Func_1
000cd4  e5dd1040          LDRB     r1,[sp,#0x40]
000cd8  e1500001          CMP      r0,r1
000cdc  1a00000a          BNE      |L1.3340|
;;;552              /* then, not executed */
;;;553            {
;;;554            Proc_6 (Ident_1, &Enum_Loc);
000ce0  e28d1040          ADD      r1,sp,#0x40
000ce4  e3a00000          MOV      r0,#0
000ce8  ebfffffe          BL       Proc_6
;;;555            strcpy (Str_2_Loc, "DHRYSTONE PROGRAM, 3'RD STRING");
000cec  e3a02020          MOV      r2,#0x20
000cf0  e28f10dc          ADR      r1,|L1.3540|
000cf4  e1a0000d          MOV      r0,sp
000cf8  ebfffffe          BL       __rt_memcpy_w
;;;556            Int_2_Loc = Run_Index;
000cfc  e1a04005          MOV      r4,r5
;;;557            Int_Glob = Run_Index;
000d00  e1a04005          MOV      r4,r5
000d04  e59f0048          LDR      r0,|L1.3412|
000d08  e5805000          STR      r5,[r0,#0]  ; Int_Glob
;;;558            }
;;;559        }
                  |L1.3340|
000d0c  eaffffea          B        |L1.3260|
;;;560          /* Int_1_Loc == 3, Int_2_Loc == 3, Int_3_Loc == 7 */
;;;561        Int_2_Loc = Int_2_Loc * Int_1_Loc;
                  |L1.3344|
000d10  e59d1048          LDR      r1,[sp,#0x48]
000d14  e0040491          MUL      r4,r1,r4
;;;562        Int_1_Loc = Int_2_Loc / Int_3_Loc;
000d18  e1a01004          MOV      r1,r4
000d1c  e59d0044          LDR      r0,[sp,#0x44]
000d20  ebfffffe          BL       __rt_sdiv
000d24  e58d0048          STR      r0,[sp,#0x48]
;;;563        Int_2_Loc = 7 * (Int_2_Loc - Int_3_Loc) - Int_1_Loc;
000d28  e59d0044          LDR      r0,[sp,#0x44]
000d2c  e0440000          SUB      r0,r4,r0
000d30  e0600180          RSB      r0,r0,r0,LSL #3
000d34  e59d1048          LDR      r1,[sp,#0x48]
000d38  e0404001          SUB      r4,r0,r1
;;;564          /* Int_1_Loc == 1, Int_2_Loc == 13, Int_3_Loc == 7 */
;;;565        Proc_2 (&Int_1_Loc);
000d3c  e28d0048          ADD      r0,sp,#0x48
000d40  ebfffffe          BL       Proc_2
;;;566          /* Int_1_Loc == 5 */
;;;567      } /* loop "for Run_Index" */
000d44  eaffffa7          B        |L1.3048|
;;;568    }
                  |L1.3400|
000d48  e28dd04c          ADD      sp,sp,#0x4c
000d4c  e8bd80f0          LDMFD    sp!,{r4-r7,pc}
                  |L1.3408|
000d50  00044014          DCD      ||.bss$2|| + 278548
                  |L1.3412|
000d54  0004400c          DCD      ||.bss$2|| + 278540
                  |L1.3416|
000d58  00044004          DCD      ||.bss$2|| + 278532
                  |L1.3420|
000d5c  00044010          DCD      ||.bss$2|| + 278544
                  |L1.3424|
000d60  00044015          DCD      ||.bss$2|| + 278549
                  |L1.3428|
000d64  00044008          DCD      ||.bss$2|| + 278536
                  |L1.3432|
000d68  59524844          DCB      "DHRY"
000d6c  4e4f5453          DCB      "STON"
000d70  52502

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -