请教大家:为什么一样的原代码在QNX4.24和4.25上有不同的效果

最近我遇到了这样一个问题:
在我的程序启动初始化时需要从系统中一个PCI设备的寄存器中读取配置参数,但是我发现系统的程序分别在QNX4.24和4.25os上运行时,读取出来的值完全不同.我使用的程序的原代码完全一致,编译也都是在QNX4.25下的watcom10.6中编译的,硬件平台完全一样,只有程序的运行平台不一样(一个是4.24,另一个是4.25).我的访问方式为:
value = pciBase+blockSel+regAddr;(read)
pciBase+blockSel+regAddr = value;(write)
我检测出address值都完全一样


我听说4.24是16位os,4.25是32位os,但我不知道这会有什么影响?会不会造成上面我所说的情况.请知道的人告诉我:16位os和32位os的区别及对程序的影响,造成上述情况的原因以及解决办法.谢谢