<<软件调试>> 的P71除0异常程序,我在vs2008中运行了,出现死循环,不停输出
In __except block: nDividend=22, nDivisor=1, nResult=100.Divide Zeroexception detected:nDividend=22, nDivisor=1, nResult=100.
查看反汇编代码发现
11: nResult=nDividend / nDivisor;00411451 8B 45 E0 mov eax,dword ptr [ebp-20h] 00411454 99 cdq 00411455 F7 F9 idiv eax,ecx 00411457 89 45 C8 mov dword ptr [ebp-38h],eax
原来nDivisor值取到ecx中了,因此无论如何修改nDivisor值,也不会影响ecx的值。
如何产生和书上相同的代码呢?
第二个问题,调试器如何确认硬件断点中读命中的呢?