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

📄 fibo.lst

📁 掏美元培训得来的某外国公司推广keil ARM 和LPC2100的源码。
💻 LST
字号:
ARM COMPILER V2.00f,  fibo                                                                 21/02/05  09:57:52  PAGE 1   


ARM COMPILER V2.00f, COMPILATION OF MODULE fibo
OBJECT MODULE PLACED IN fibo.OBJ
COMPILER INVOKED BY: C:\Keil\ARM\BIN\CA.exe fibo.c THUMB DEBUG TABS(4) 

stmt  level    source

    1          /************************************************************/
    2          /* PROJECT NAME: First                                      */
    3          /* Project:      LPC2100 Training course                    */
    4          /* Engineer:     T Martin                                   */
    5          /* Filename:     Fibo.C                                     */
    6          /* Language:     C                                          */
    7          /* Compiler:     Keil CARM Ver 2.00b                        */
    8          /* Assembler:                                               */
    9          /*                                                          */
   10          /************************************************************/
   11          /* Modification History:                                    */
   12          /*                                                          */
   13          /************************************************************/
   14          /* Function:                                                */
   15          /*                                                          */
   16          /* Startup code example                                     */
   17          /*                                                          */
   18          /* Demonstrates Startup code and project layout             */
   19          /*                                                          */  
   20          /* Oscillator frequency 12.00 Mhz                           */
   21          /* Target board Keil MCB2100                                */
   22          /************************************************************/
   23          
   24          unsigned int fiboCount;
   25          unsigned int counter;
   26          
   27          
   28          unsigned int Fibonacci(unsigned int n)
   29          {
   30   1        unsigned fib1, fib2, fibo;
   31   1        int i;
   32   1      
   33   1        fib1 = 0;
   34   1        fib2 = 1;
   35   1        fibo = n;
   36   1        i = 2;  
   37   1        while (i <= n) { 
   38   2          fibo = fib1 + fib2;       
   39   2          fib1 = fib2;
   40   2          fib2 = fibo;
   41   2          i++;       
   42   2        }             
   43   1        return(fibo);
   44   1      }
   45          
   46          int main(void)
   47          { 
   48   1      
   49   1         int i;
   50   1      
   51   1           for (;;)
   52   1         {
   53   2            counter = 0;
   54   2            for (i = 0; i <= 20; i++)
   55   2            {
   56   3               counter++;
   57   3               fiboCount = Fibonacci(counter);
   58   3            }      
   59   2         }
ARM COMPILER V2.00f,  fibo                                                                 21/02/05  09:57:52  PAGE 2   

   60   1      }
ARM COMPILER V2.00f,  fibo                                                                 21/02/05  09:57:52  PAGE 3   

ASSEMBLY LISTING OF GENERATED OBJECT CODE



*** EXTERNALS:
 EXTERN NUMBER (__startup)



*** PUBLICS:
 PUBLIC         Fibonacci?T
 PUBLIC         main
 PUBLIC         fiboCount
 PUBLIC         counter



*** DATA SEGMENT '?DT0?fibo':
 00000000          fiboCount:
 00000000            DS          4
 00000004          counter:
 00000004            DS          4



*** CODE SEGMENT '?PR?Fibonacci?T?fibo':
   28: unsigned int Fibonacci(unsigned int n)
 00000000  B410      PUSH        {R4}
 00000002  ---- Variable 'n' assigned to Register 'R0' ----
   29: {
 00000002            ; SCOPE-START
   33:   fib1 = 0;
 00000002  2400      MOV         R4,#0x0
 00000004  ---- Variable 'fib1' assigned to Register 'R4' ----
   34:   fib2 = 1;
 00000004  2301      MOV         R3,#0x1
 00000006  ---- Variable 'fib2' assigned to Register 'R3' ----
   35:   fibo = n;
 00000006  1C01      MOV         R1,R0 ; fibo
 00000008  ---- Variable 'fibo' assigned to Register 'R1' ----
   36:   i = 2;  
 00000008  2202      MOV         R2,#0x2
 0000000A  ---- Variable 'i' assigned to Register 'R2' ----
   37:   while (i <= n) { 
 0000000A  E003      B           L_1  ; T=0x00000014
 0000000C          L_3:
   38:     fibo = fib1 + fib2;       
 0000000C  18E1      ADD         R1,R4,R3 ; fib1
   39:     fib1 = fib2;
 0000000E  1C1C      MOV         R4,R3 ; fib1
   40:     fib2 = fibo;
 00000010  1C0B      MOV         R3,R1 ; fib2
   41:     i++;       
 00000012  3201      ADD         R2,#0x1
   42:   }             
 00000014          L_1:
 00000014  4282      CMP         R2,R0 ; i
 00000016  D9F9      BLS         L_3  ; T=0x0000000C
   43:   return(fibo);
 00000018  1C08      MOV         R0,R1 ; fibo
 0000001A            ; SCOPE-END
   44: }
 0000001A  BC10      POP         {R4}
 0000001C  4770      BX          R14
 0000001E          ENDP ; 'Fibonacci?T'


*** CODE SEGMENT '?PR?main?fibo':
   46: int main(void)
 00000000  B500      PUSH        {LR}
   47: { 
 00000002            ; SCOPE-START
   51:      for (;;)
 00000002          L_9:
   53:       counter = 0;
ARM COMPILER V2.00f,  fibo                                                                 21/02/05  09:57:52  PAGE 4   

 00000002  2100      MOV         R1,#0x0
 00000004  4800      LDR         R0,=counter ; counter
 00000006  6001      STR         R1,[R0,#0x0] ; counter
   54:       for (i = 0; i <= 20; i++)
 00000008  2400      MOV         R4,#0x0
 0000000A  ---- Variable 'i' assigned to Register 'R4' ----
 0000000A          L_14:
   56:          counter++;
 0000000A  4800      LDR         R0,=counter ; counter
 0000000C  6801      LDR         R1,[R0,#0x0] ; counter
 0000000E  3101      ADD         R1,#0x1
 00000010  6001      STR         R1,[R0,#0x0] ; counter
   57:          fiboCount = Fibonacci(counter);
 00000012  4800      LDR         R0,=counter ; counter
 00000014  6800      LDR         R0,[R0,#0x0] ; counter
 00000016  F7FF      BL          Fibonacci?T  ; T=0x0001  (1)
 00000018  FFF3      BL          Fibonacci?T  ; T=0x0001  (2)
 0000001C  4800      LDR         R1,=fiboCount ; fiboCount
 0000001E  6008      STR         R0,[R1,#0x0] ; fiboCount
   58:       }      
 00000020  3401      ADD         R4,#0x1
 00000022  2C14      CMP         R4,#0x14 ; i
 00000024  DDF1      BLE         L_14  ; T=0x0000000A
   59:    }
 00000026  E7EC      B           L_9  ; T=0x00000002
 00000028            ; SCOPE-END
 00000028  BC08      POP         {R3}
 0000002A  4718      BX          R3
 0000002C          ENDP ; 'main'



Module Information          Static
----------------------------------
  code size            =    ------
  data size            =         8
  const size           =    ------
End of Module Information.


ARM COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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