Picproje Elektronik Sitesi

MİKRODENETLEYİCİLER => ARM => ARM7 Mikrodenetleyici => Konuyu başlatan: z - 11 Nisan 2007, 02:06:03

Başlık: LST dosyasindaki C lib fonksiyonlarini detayli sekilde gorme
Gönderen: z - 11 Nisan 2007, 02:06:03
Asagidaki lst dosyasi LPC21xx islemci icin icin Keil tarafindan uretildi ve long degiskenler uzerinde c=a/b islemine ait kodlari iceriyor.

Buradaki bolme islemi  ?C?SDIV?T fonksiyonu tarafindan yapilmakta ancak bu fonksiyon icerigi lst dosyada bulunmamakta.

Keil'in bu tur fonksiyonlarinin da asm iceriklerini gorme sansimiz varmi?


*** EXTERNALS:
EXTERN CODE16 (?C?SDIV?T)
EXTERN NUMBER (__startup)



*** PUBLICS:
PUBLIC         Bolme?T
PUBLIC         main



*** CODE SEGMENT '?PR?Bolme?T?main':
   3: long Bolme(long a,b)
00000000  B500      PUSH        {LR}
00000002  1C0B      MOV         R3,R1 ; b
00000004  ---- Variable 'b' assigned to Register 'R3' ----
00000004  1C02      MOV         R2,R0 ; a
00000006  ---- Variable 'a' assigned to Register 'R2' ----
   5:     return(a/b);
00000006  1C19      MOV         R1,R3 ; b
00000008  1C10      MOV         R0,R2 ; a
0000000A  F7FF      BL          ?C?SDIV?T  ; T=0x0001  (1) ; ?C?SDIV?T
0000000C  FFF9      BL          ?C?SDIV?T  ; T=0x0001  (2) ; ?C?SDIV?T
0000000E  1C08      MOV         R0,R1
   6: }
00000010  BC08      POP         {R3}
00000012  4718      BX          R3
00000014          ENDP ; 'Bolme?T'