C51 COMPILER V8.08 FRACT16M 10/16/2013 15:40:41 PAGE 1 C51 COMPILER V8.08, COMPILATION OF MODULE FRACT16M OBJECT MODULE PLACED IN fract16m.OBJ COMPILER INVOKED BY: C:\Keil51\C51\BIN\C51.EXE fract16m.c BROWSE DEBUG OBJECTEXTEND line level source 1 #include 2 typedef unsigned int u16; 3 typedef unsigned char u8; 4 typedef unsigned long u32; 5 u32 N; 6 7 u16 fd2(u8 x){ //перевод 10/2 двух цифр в дробный m=2^8 8 1 u16 y=((((x&0xf0)>>4)*10 + (x&0x0f))<<8); 9 1 return ((y/100)<<8)|(y%100) ; } 10 11 u8 f2d(u16 y){ //перевод из int 2/10 двух старших цифр m=2^8 12 1 u16 yy,zz; 13 1 y=(y*10); 14 1 yy=((y&0xf00)>>4); 15 1 zz= ((y&0xff)*10); 16 1 yy|=((zz&0xf00)>>8); 17 1 return (yy<<8)|(zz&0xff); 18 1 } 19 20 main() 21 { u16 z=fd2(P1); 22 1 u16 y=fd2(P0); // (y%100).(y/100) 23 1 while(1) 24 1 { 25 2 26 2 N= (y&0xff00) + ((((y&0xff)<<8)+(z&0xff00))>>8); //перевод в дробное m=(2^16) 27 2 28 2 y=f2d(N>>8); 29 2 P2=y>>8; // P0 30 2 P3=f2d((y+N)&0xff); //P1 31 2 } 32 1 } MODULE INFORMATION: STATIC OVERLAYABLE CODE SIZE = 193 ---- CONSTANT SIZE = ---- ---- XDATA SIZE = ---- ---- PDATA SIZE = ---- ---- DATA SIZE = 4 4 IDATA SIZE = ---- ---- BIT SIZE = ---- ---- END OF MODULE INFORMATION. C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)