-
-
请教下这个msvcp90.std::basic_string是如何比较的,谢了!
-
-
请教下这个msvcp90.std::basic_string是如何比较的,谢了!
下面各参数来源都知道,看调用的CALL貌似是字符比较,自己查了很久,但不明白参数之间是如何比较的,通俗的讲,就是那个比较那个,及如何比较的。因为我需要这个函数的返回值。求高手指点一下,谢谢了!
004C81C0 /$ 55 push ebp ; [ebp+4]= ASCII "marsh_good_and_bad_job"
004C81C1 |. 8BEC mov ebp,esp
004C81C3 |. 51 push ecx ; ECX=04D7E2A4
004C81C4 |. 894D FC mov [local.1],ecx
004C81C7 |. 8B45 0C mov eax,[arg.2]
004C81CA |. 50 push eax ; [eax+4]= ASCII "marsh_good_and_bad_job"
004C81CB |. 8B4D 08 mov ecx,[arg.1]
004C81CE |. 51 push ecx ; ECX=1125721C
004C81CF |. FF15 84931601 call dword ptr ds:[<&MSVCP90.??$?MDU?$ch>; msvcp90.??$?MDU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA_NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0@Z
004C81D5 |. 83C4 08 add esp,0x8
004C81D8 |. 8BE5 mov esp,ebp
004C81DA |. 5D pop ebp
004C81DB \. C2 0800 retn 0x8
//这个是上面调用的CALL内部
78495979 > 8BFF mov edi,edi
7849597B 55 push ebp
7849597C 8BEC mov ebp,esp
7849597E FF75 0C push dword ptr ss:[ebp+0xC]
78495981 8B4D 08 mov ecx,dword ptr ss:[ebp+0x8]
78495984 E8 8203FFFF call msvcp90.std::basic_string<char,std::char_traits<char>,std::allocator<char> >::compare
78495989 33C9 xor ecx,ecx
7849598B 85C0 test eax,eax
7849598D 0F9CC1 setl cl
78495990 8AC1 mov al,cl
78495992 5D pop ebp
78495993 C3 retn
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课