能力值:
(RANK:410 )
|
-
-
2 楼
这是因为ecx中保存着有其它地方要用的数据,而cdtDraw会改变ecx的值,所以在调用cdtDraw函数的时候要先保存一下ecx的值,函数返回后再恢复ecx的值。
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
感谢小虾的帮助, ECX 中确有要保护的数据, 但并没有 cdtDraw 函数破坏 ECX 寄存器的证据.照理说,函数要破坏某些寄存器前,应先将其保护起来,在返回前
再恢复它们,难道 cdtDraw 函数不知道这样做吗?
|
能力值:
(RANK:410 )
|
-
-
4 楼
API函数一般只会保存edi、esi和ebx、ebp、esp这几个寄存器,EAX/ECX/EDX这三个寄存器可不能保证了。
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
还请小虾不厌其烦,API函数返回值在EAX中自不必说,那么在实际应用中,像edi、esi和ebx、ebp、esp这几个寄存器是不是可以不用去管它,而EAX/ECX/EDX中如果有需要保护的数据,必须先PUSH起来,对吗?还有其它寄存器需要PUSH吗?
|
能力值:
(RANK:410 )
|
-
-
6 楼
eax/ecx/edx如果有需要保护的数据,必须先push起来,其它基本上不用了。
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
thank you very much
|
|
|