C的编译问题
以下是我的C程序,奇怪为什么它一编译,函数调用中的参数就都跑到外部存储器中去了?
对C了解不多,请大家指点
main()
{uchar data i;
inimcu();
iniPCF8563();
delay(200);
WRonebyte(0X59,0x7103);
delay(10);
i=RDonebyte(0x0103);
delay(1);
dsptime();
}
void inimcu(void)
{ TMOD=0x21;
TL1=0xfa; //22MÓÃF4H,11MÓÃFAH
TH1=0xfa;
TL0=0xcc; /* 1ms */
TH0=0xf8;
SCON1=0x50; /* ·½Ê½1 */
SCON0=0x50;
PCON=0x80;
TR1=1;
TR0=1;
IE=0x00;
}
void delay(uchar data n)
{uchar data i,j;
for(j=0;j <n;j++)
for(i=0;i <255;i++)
{;;}
}
以下是编译后的一部分汇编,
02C1 1203BE LCALL #inimcu(P:03BE)
02C4 1200CB LCALL #iniPCF8563(P:00CB)
02C7 7803 MOV R0,#03H
02C9 74C8 MOV A,#0C8H
02CB F2 MOVX @R0,ACC (怎么会在外部呢??)
02CC 1203A2 LCALL #delay(P:03A2)
发表时间:2004年7月27日15:46:52