I use sdcc to compile a program to read a analog input and display it on an lcd .but i get the following error.
  sdcc: /home/users/s/sd/sdcc-builder/build/sdcc-build/orig/sdcc/src/pic/gen.c:3609: genModOneByte: Assertion `result->aop->size == 1' failed.
Caught signal 6: SIGABRT

 .
#include"pic/pic16f877.h"
char x;
int value1;
int count;
int count1;
char value2;
char value;
char value3;
char value4;
 char value5;
char value6;
char value7;
char value8;
void lcd();
void adc();
void sendcom();
void senddata();
void multiply();
void Delay();  
void check();  
void main()
{
 lcd();
 
 while(1)
 {
  adc();  
 }
}
void lcd()
{  
  TRISC=0X00;
  x=0x30;
  sendcom();   
  Delay();
 
  x=0x01;
  sendcom();  
  Delay();
 
  x=0x0c;
  sendcom();  
  Delay();
 
  x=0x06;
  sendcom();
  Delay();
}  
void adc()
{
  //ADCON1=0x80;
  //ADCON0=0x89;
 
     _asm
 
     BSF ADCON1,7;
     BCF ADCON1,3 ;
     BCF ADCON1,2;
     BCF ADCON1,1;
     BCF ADCON1,0;
     MOVLW  H'89';
     MOVWF  ADCON0;
     _endasm;
 
  //ADCON0=0X89;
 
 
  Delay();
  GO=1;
                                                                                         
  while(GO!=0)        /* EQUILENT OF GO/DoNE BIT*/
  {
  }
      
   x=0x80;
   sendcom();
   Delay();
   multiply();
   
 }
 
    
void sendcom()
{
  TRISD=0x00;
  PORTC = 0x04;  //rs=0,rw=1,E=2
  PORTD=x;
  PORTC=0x00;
 }
void senddata()
{
 TRISD=0x00;  
 PORTC=0x05;
 PORTD=value1;
 Delay();
 PORTC=0x01;
}
 
void Delay()
  {
   count1=0xff;
   while(count1!=1)
{
       count=0x0f;
       while(count!=1)
            {
               count--;
        }
     count1--;
 }
}
 
 
void multiply()
{
  value=ADRESH;
  value=value&0x03;
  value=value*0.48;
   
  value2=0;
  value2=ADRESL;
  value2=value2&0x0f;
  value2=value2*0.48;
   
  value3=0;
  value3=ADRESL;
  value3=value3&0xf0;
  value3=value3*0.48;
 
  value4=value3|value2;
  value1=(value|value4);
 
     
  value5=value1/10;
  value6=value/10;  
  value1=value5%10;
  value1=value1+'0';
   
  senddata();
  Delay();
 
  value1=value6%10;
  value1=value1+'0';
  senddata();
  Delay();
 
 
  }