unsigned short *AddrValue[0x700];
void MB_SetRegValue(unsigned int addr,unsigned int value)
{
*AddrValue[addr] = value;
}
unsigned int MB_GetRegValue(unsigned int addr)
{
return *AddrValue[addr];
}
void main()
{
//读32寄存器的值
unsigned short a,i,b;
unsigned long g_acreapwr;
for(i=0;i<0x700;i++)
AddrValue[i]=&a;
AddrValue[0x200] = (unsigned short *)(&g_acreapwr+1);
AddrValue[0x201] = (unsigned short *)(&g_acreapwr);
g_acreapwr= 0x12345678;
a =MB_GetRegValue(0x200);
b =MB_GetRegValue(0x201);
printf("a=%0x,b=%0x\n",a,b);
g_acreapwr= 0xABCDEF12;
a =MB_GetRegValue(0x200);
b =MB_GetRegValue(0x201);
printf("a=%0x,b=%0x\n",a,b);
}
以上程序我想实现两个输出为:
a=1234,b=5678
a=ABCD,B=EF12
而实际输出是:
a=CCCC,b=5678
a=5678,B=EF12