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'