这是一个ds1302的子程序:我 把形参ucda赋值给ACC,可是下边的反汇编立即就给清零了(红色部分).这样我的形参根本没其作用。谁在c中用过ACC啊。遇到过这种情况吗?
12: void inputbyte(uchar ucda)//8位数据输入函数
13: {
14: uchar i;
15: t_rst=1;//启动数据传送
C:0x0100 D2B3 SETB t_rst(0xB0.3)
16: ACC="ucda";
C:0x0102 EF MOV A,R7
17: for(i=0;i<8;i++)//循环8次,写入8位数据,从低位到高位
C:0x0103 E4 CLR A
C:0x0104 FF MOV R7,A
18: {
24: t_io=Abit0; //Abit0--有预处理命令sbit Abit0=ACC^0;
C:0x0105 A2E0 MOV C,Abit0(0xE0.0)
C:0x0107 92B5 MOV t_io(0xB0.5),C
25: _nop_();
C:0x0109 00 NOP
26: t_clk=0;
C:0x010A C2B4 CLR t_clk(0xB0.4)
27: t_clk=1;
C:0x010C D2B4 SETB t_clk(0xB0.4)
29: ACC>>=1;
C:0x010E C3 CLR C
C:0x010F 13 RRC A
30: }
31:
C:0x0110 0F INC R7
C:0x0111 BF08F1 CJNE R7,#curttime1(0x08),C:0105
32: }
C:0x0114 22 RET