int son = 2;
switch(son) {
case 1: son = 1; break;
case 2: son = 2; break;
default:
}
kodunun bir kısmının disasm çıktısı aşağıdaki gibi oluyor
00402019 89 45 FC mov dword ptr [son],eax
0040201C 83 F8 01 cmp eax,1
0040201F 74 07 je D main+18h (0402028h)
00402021 83 F8 02 cmp eax,2
00402024 74 0B je D main+21h (0402031h)
00402026 EB 0C jmp D main+24h (0402034h)
ama case 0: eklersek buraya
0040201C 85 C0 test eax,eax
0040201E 74 0C je D main+1Ch (040202Ch)
oluyor. Neden cmp yerine test kullanılmış ikisi arasında ne gibi farklılıklar var?
Zekeriya
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]