怎么用c语言读取cmos ram 的信息?

为什么我用GetPortVal读取出来的9存的是 25,而不是年-2019 啊????
代码如下:

compare = 0x80000000;  
         SetPortVal(0x70, i, 1); 
         Sleep(1);  
         GetPortVal(0x71, &data, 1); 
         printf("端口:%3d    数值:%d  二进制数值:",i,data);    
         for(; compare != 0; compare >>= 1) 
            printf("%u", ((compare&data) == compare));    
         printf("\n");  
         data = 0;  

不同的芯片,cmos上保存的地址不同,而且要注意你的程序有没有权限,最好在纯dos下读取(网上有dos工具箱一类的工具,启动的环境)