阅读:1015回复:1
问题继续
以前我是这样定义的:
ULONG xy=READ_PORT_ULONG((PULONG)(dx->BA0+INTCSR)); xy|=0x400000; dx->BA0为0xE400;INTCSR为0x3C; 然后WRITE_PORT_ULONG((PULONG)(dx->BA0+INTCSR),xy); 这时候寄存器中edx的值应该为 0xE43C(??);但实际上在 softIce中看不是这个值,而是一个其他值,好象是0xE4??; 而EAX中的值应该为xy的值,但是为0x02;用Watch看xy为OxO2; 然后 我这样定义: ULONG xy=0X09; xy=READ_PORT_ULONG((PULONG)(dx->BA0+INTCSR)); xy|=0x400000; 这时 xy=0x8.......; 请问这是softIce的问题还是什么地方的问题? 反正我的驱动程序收不到中断 |
|
沙发#
发布于:2002-05-19 16:23
ULONG xy=READ_PORT_ULONG((PULONG)(dx->BA0+INTCSR));
xy|=0x400000; dx->BA0为0xE400;INTCSR为0x3C; 然后WRITE_PORT_ULONG((PULONG)(dx->BA0+INTCSR),xy); 这时候寄存器中edx的值应该为 0xE43C(??); 你有什么根据来说EDX的值是0XE43C呢 ,这里EDX的值就是不应该是0XE43C,你应该看汇编代码而不应该看这个源代码,才知道为什么不是你希望的值 但实际上在softIce中看不是这个值,而是一个其他值,好象是0xE4??; 而EAX中的值应该为xy的值,但是为0x02;用Watch看xy为OxO2; 然后 我这样定义: ULONG xy=0X09; xy=READ_PORT_ULONG((PULONG)(dx->BA0+INTCSR)); xy|=0x400000; 这时 xy=0x8.......; 你为什么说这个值不对呢?也许读读来的XY值就是0X8。。。。。。 |
|