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

📄 dhry_1.lst

📁 ARM入门的好帮手.包含了从简单到相对较复杂的程序.
💻 LST
📖 第 1 页 / 共 3 页
字号:
   \   00000088   FBFFFF1A              BNE      ??testloop_2
    183          
    184              Arr_2_Glob [8][7] = 10;
   \   0000008C   2C619FE5              LDR      R6,??testloop_0+12  ;; #Arr_2_Glob
   \   00000090   0A00A0E3              MOV      R0,#+0xA
   \   00000094   5C0686E5              STR      R0,[R6, #+1628]
    185                  /* Was missing in published program. Without this statement,    */
    186                  /* Arr_2_Glob [8][7] would have an undefined value.             */
    187                  /* Warning: With 16-Bit processors and Number_Of_Runs > 32000,  */
    188                  /* overflow may occur for this array element.                   */
    189          
    190          
    191              /***************/
    192              /* Start loop */
    193              /***************/
    194          
    195              for (Run_Index = 1; Run_Index <= Number_Of_Runs; ++Run_Index)
   \   00000098   0170A0E3              MOV      R7,#+0x1
   \   0000009C   1C0000EA              B        ??testloop_3
    196              {
    197                  Proc_5();
    198                  Proc_4();
    199                  /* Ch_1_Glob == 'A', Ch_2_Glob == 'B', Bool_Glob == true */
    200                  Int_1_Loc = 2;
    201                  Int_2_Loc = 3;
    202                  strcpy (Str_2_Loc, "DHRYSTONE PROGRAM, 2'ND STRING");
    203                  Enum_Loc = Ident_2;
    204                  Bool_Glob = ! Func_2 (Str_1_Loc, Str_2_Loc);
    205                  /* Bool_Glob == 1 */
    206                  while (Int_1_Loc < Int_2_Loc)  /* loop body executed once */
    207                  {
    208                      Int_3_Loc = 5 * Int_1_Loc - Int_2_Loc;
    209                      /* Int_3_Loc == 7 */
    210                      Proc_7 (Int_1_Loc, Int_2_Loc, &Int_3_Loc);
    211                      /* Int_3_Loc == 7 */
    212                      Int_1_Loc += 1;
    213                  } /* while */
    214                  /* Int_1_Loc == 3, Int_2_Loc == 3, Int_3_Loc == 7 */
    215                  Proc_8 (Arr_1_Glob, Arr_2_Glob, Int_1_Loc, Int_3_Loc);
    216                  /* Int_Glob == 5 */
    217                  Proc_1 (Ptr_Glob);
    218                  for (Ch_Index = 'A'; Ch_Index <= Ch_2_Glob; ++Ch_Index)
    219                                       /* loop body executed twice */
    220                  {
    221                      if (Enum_Loc == Func_1 (Ch_Index, 'C'))
   \                     ??testloop_4:
   \   000000A0   0490DDE5              LDRB     R9,[SP, #+4]
   \   000000A4   4310A0E3              MOV      R1,#+0x43
   \   000000A8   0800A0E1              MOV      R0,R8
   \   000000AC   ........              BL       Func_1
   \   000000B0   FF0000E2              AND      R0,R0,#+0xFF       ;; Zero extend
   \   000000B4   000059E1              CMP      R9,R0
   \   000000B8   0900001A              BNE      ??testloop_5
    222                      /* then, not executed */
    223                      {
    224                          Proc_6 (Ident_1, &Enum_Loc);
   \   000000BC   04108DE2              ADD      R1,SP,#+0x4
   \   000000C0   0000A0E3              MOV      R0,#+0x0
   \   000000C4   ........              BL       Proc_6
    225                          strcpy (Str_2_Loc, "DHRYSTONE PROGRAM, 3'RD STRING");
   \   000000C8   F4009FE5              LDR      R0,??testloop_0+16  ;; #`?<Constant "DHRYSTONE PROGRAM, 3\\'...">`
   \   000000CC   05108DE2              ADD      R1,SP,#+0x5
   \                     ??testloop_6:
   \   000000D0   ........              LDRB     R2,[R0], #+1
   \   000000D4   ........              STRB     R2,[R1], #+1
   \   000000D8   000052E3              CMP      R2,#+0x0
   \   000000DC   FBFFFF1A              BNE      ??testloop_6
    226                          Int_2_Loc = Run_Index;
    227                          Int_Glob = Run_Index;
   \   000000E0   D07085E5              STR      R7,[R5, #+208]
    228                      }
    229                  }
   \                     ??testloop_5:
   \   000000E4   018088E2              ADD      R8,R8,#+0x1
   \                     ??testloop_7:
   \   000000E8   C900D5E5              LDRB     R0,[R5, #+201]
   \   000000EC   FF8008E2              AND      R8,R8,#+0xFF       ;; Zero extend
   \   000000F0   080050E1              CMP      R0,R8
   \   000000F4   E9FFFF2A              BCS      ??testloop_4
    230                  /* Int_1_Loc == 3, Int_2_Loc == 3, Int_3_Loc == 7 */
    231                  Int_2_Loc = Int_2_Loc * Int_1_Loc;
    232                  Int_1_Loc = Int_2_Loc / Int_3_Loc;
    233                  Int_2_Loc = 7 * (Int_2_Loc - Int_3_Loc) - Int_1_Loc;
    234                  /* Int_1_Loc == 1, Int_2_Loc == 13, Int_3_Loc == 7 */
    235                  Proc_2 (&Int_1_Loc);
   \   000000F8   C810D5E5              LDRB     R1,[R5, #+200]
   \   000000FC   410051E3              CMP      R1,#+0x41
   \   00000100   0200000A              BEQ      ??testloop_8
   \                     ??testloop_9:
   \   00000104   FF0000E2              AND      R0,R0,#+0xFF       ;; Zero extend
   \   00000108   000050E3              CMP      R0,#+0x0
   \   0000010C   FCFFFF1A              BNE      ??testloop_9
   \                     ??testloop_8:
   \   00000110   017087E2              ADD      R7,R7,#+0x1
   \                     ??testloop_3:
   \   00000114   070054E1              CMP      R4,R7
   \   00000118   230000BA              BLT      ??testloop_10
   \   0000011C   4100A0E3              MOV      R0,#+0x41
   \   00000120   C800C5E5              STRB     R0,[R5, #+200]
   \   00000124   0100A0E3              MOV      R0,#+0x1
   \   00000128   CC0085E5              STR      R0,[R5, #+204]
   \   0000012C   4200A0E3              MOV      R0,#+0x42
   \   00000130   C900C5E5              STRB     R0,[R5, #+201]
   \   00000134   8C009FE5              LDR      R0,??testloop_0+20  ;; #`?<Constant "DHRYSTONE PROGRAM, 2\\'...">`
   \   00000138   05108DE2              ADD      R1,SP,#+0x5
   \                     ??testloop_11:
   \   0000013C   ........              LDRB     R2,[R0], #+1
   \   00000140   ........              STRB     R2,[R1], #+1
   \   00000144   000052E3              CMP      R2,#+0x0
   \   00000148   FBFFFF1A              BNE      ??testloop_11
   \   0000014C   0100A0E3              MOV      R0,#+0x1
   \   00000150   0400CDE5              STRB     R0,[SP, #+4]
   \   00000154   05108DE2              ADD      R1,SP,#+0x5
   \   00000158   24008DE2              ADD      R0,SP,#+0x24
   \   0000015C   ........              BL       Func_2
   \   00000160   000050E3              CMP      R0,#+0x0
   \   00000164   0100A003              MOVEQ    R0,#+0x1
   \   00000168   0000A013              MOVNE    R0,#+0x0
   \   0000016C   CC0085E5              STR      R0,[R5, #+204]
   \   00000170   0700A0E3              MOV      R0,#+0x7
   \   00000174   00008DE5              STR      R0,[SP, #+0]
   \   00000178   0D20A0E1              MOV      R2,SP
   \   0000017C   0310A0E3              MOV      R1,#+0x3
   \   00000180   0200A0E3              MOV      R0,#+0x2
   \   00000184   ........              BL       Proc_7
   \   00000188   00309DE5              LDR      R3,[SP, #+0]
   \   0000018C   0320A0E3              MOV      R2,#+0x3
   \   00000190   0610A0E1              MOV      R1,R6
   \   00000194   0500A0E1              MOV      R0,R5
   \   00000198   ........              BL       Proc_8
   \   0000019C   D80095E5              LDR      R0,[R5, #+216]
   \   000001A0   ........              BL       Proc_1
   \   000001A4   4180A0E3              MOV      R8,#+0x41
   \   000001A8   CEFFFFEA              B        ??testloop_7
    236                  /* Int_1_Loc == 5 */
    237          
    238              } /* loop "for Run_Index" */
    239          
    240          }
   \                     ??testloop_10:
   \   000001AC   44D08DE2              ADD      SP,SP,#+0x44       ;; stack cleaning
   \   000001B0   F083BDE8              LDMIA    SP!,{R4-R9,PC}     ;; return
   \   000001B4                         DATA     
   \                     ??testloop_0:
   \   000001B4   ........              DC32     Arr_1_Glob
   \   000001B8   ........              DC32     `?<Constant "DHRYSTONE PROGRAM, SO...">`
   \   000001BC   ........              DC32     `?<Constant "DHRYSTONE PROGRAM, 1\\'...">`
   \   000001C0   ........              DC32     Arr_2_Glob
   \   000001C4   ........              DC32     `?<Constant "DHRYSTONE PROGRAM, 3\\'...">`
   \   000001C8   ........              DC32     `?<Constant "DHRYSTONE PROGRAM, 2\\'...">`

   \                                 In segment HUGE_C, align 1, align-sorted
   \                     `?<Constant "DHRYSTONE PROGRAM, SO...">`:
   \   00000000   444852595354               DC8 "DHRYSTONE PROGRAM, SOME STRING"
   \              4F4E45205052
   \              4F4752414D2C
   \              20534F4D4520
   \              535452494E47
   \              00          

   \                                 In segment HUGE_C, align 1, align-sorted
   \                     `?<Constant "DHRYSTONE PROGRAM, 1\\'...">`:
   \   00000000   444852595354               DC8 "DHRYSTONE PROGRAM, 1'ST STRING"
   \              4F4E45205052
   \              4F4752414D2C
   \              203127535420
   \              535452494E47
   \              00          

   \                                 In segment HUGE_C, align 1, align-sorted
   \                     `?<Constant "DHRYSTONE PROGRAM, 2\\'...">`:
   \   00000000   444852595354               DC8 "DHRYSTONE PROGRAM, 2'ND STRING"
   \              4F4E45205052
   \              4F4752414D2C
   \              2032274E4420
   \              535452494E47
   \              00          

   \                                 In segment HUGE_C, align 1, align-sorted
   \                     `?<Constant "DHRYSTONE PROGRAM, 3\\'...">`:
   \   00000000   444852595354               DC8 "DHRYSTONE PROGRAM, 3'RD STRING"
   \              4F4E45205052
   \              4F4752414D2C
   \              203327524420
   \              535452494E47
   \              00          
    241          
    242          
    243          

   Maximum stack usage in bytes:

     Function  CSTACK
     --------  ------
     Proc_1       16 
     Proc_2        4 
     Proc_3        4 
     Proc_4        0 
     Proc_5        0 
     testloop     96 

 
    124 bytes in segment HUGE_C    
 10 244 bytes in segment HUGE_Z    
     12 bytes in segment INITTAB   
    864 bytes in segment NEARFUNC_A
 
    864 bytes of CODE      memory (+ 12 bytes shared)
    124 bytes of HUGECONST memory
 10 244 bytes of HUGEDATA  memory

Errors: none
Warnings: none

⌨️ 快捷键说明

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