分类:
2008-10-13 16:14:14
#define max(a,b) ((a)>(b)?(a):(b))使用它来比较两个看不出什么问题,我们不妨用它来比较一下a, b, c, d的大小:
max_num = a; if (max_num<b) max_num = b; if (max_num<c) max_num = c; if (max_num<d) max_num = d;这样做又清爽又直观难道不好么?所以,兵器有多种,如何发挥作用还在于用的人。:p
13: max_num = max(a, max(b, max(c, d))); 0040104A mov eax,dword ptr [ebp-0Ch] 0040104D cmp eax,dword ptr [ebp-10h] 00401050 jle main+4Ah (0040105a) 00401052 mov ecx,dword ptr [ebp-0Ch] 00401055 mov dword ptr [ebp-18h],ecx 00401058 jmp main+50h (00401060) 0040105A mov edx,dword ptr [ebp-10h] 0040105D mov dword ptr [ebp-18h],edx 00401060 mov eax,dword ptr [ebp-8] 00401063 cmp eax,dword ptr [ebp-18h] 00401066 jle main+60h (00401070) 00401068 mov ecx,dword ptr [ebp-8] 0040106B mov dword ptr [ebp-1Ch],ecx 0040106E jmp main+7Ch (0040108c) 00401070 mov edx,dword ptr [ebp-0Ch] 00401073 cmp edx,dword ptr [ebp-10h] 00401076 jle main+70h (00401080) 00401078 mov eax,dword ptr [ebp-0Ch] 0040107B mov dword ptr [ebp-20h],eax 0040107E jmp main+76h (00401086) 00401080 mov ecx,dword ptr [ebp-10h] 00401083 mov dword ptr [ebp-20h],ecx 00401086 mov edx,dword ptr [ebp-20h] 00401089 mov dword ptr [ebp-1Ch],edx 0040108C mov eax,dword ptr [ebp-4] 0040108F cmp eax,dword ptr [ebp-1Ch] 00401092 jle main+8Ch (0040109c) 00401094 mov ecx,dword ptr [ebp-4] 00401097 mov dword ptr [ebp-24h],ecx 0040109A jmp main+0D4h (004010e4) 0040109C mov edx,dword ptr [ebp-0Ch] 0040109F cmp edx,dword ptr [ebp-10h] 004010A2 jle main+9Ch (004010ac) 004010A4 mov eax,dword ptr [ebp-0Ch] 004010A7 mov dword ptr [ebp-28h],eax 004010AA jmp main+0A2h (004010b2) 004010AC mov ecx,dword ptr [ebp-10h] 004010AF mov dword ptr [ebp-28h],ecx 004010B2 mov edx,dword ptr [ebp-8] 004010B5 cmp edx,dword ptr [ebp-28h] 004010B8 jle main+0B2h (004010c2) 004010BA mov eax,dword ptr [ebp-8] 004010BD mov dword ptr [ebp-2Ch],eax 004010C0 jmp main+0CEh (004010de) 004010C2 mov ecx,dword ptr [ebp-0Ch] 004010C5 cmp ecx,dword ptr [ebp-10h] 004010C8 jle main+0C2h (004010d2) 004010CA mov edx,dword ptr [ebp-0Ch] 004010CD mov dword ptr [ebp-30h],edx 004010D0 jmp main+0C8h (004010d8) 004010D2 mov eax,dword ptr [ebp-10h] 004010D5 mov dword ptr [ebp-30h],eax 004010D8 mov ecx,dword ptr [ebp-30h] 004010DB mov dword ptr [ebp-2Ch],ecx 004010DE mov edx,dword ptr [ebp-2Ch] 004010E1 mov dword ptr [ebp-24h],edx 004010E4 mov eax,dword ptr [ebp-24h] 004010E7 mov dword ptr [ebp-14h],eax 14: max_num = max(max(a, b), max(c, d)); 004010EA mov ecx,dword ptr [ebp-4] 004010ED cmp ecx,dword ptr [ebp-8] 004010F0 jle main+0EAh (004010fa) 004010F2 mov edx,dword ptr [ebp-4] 004010F5 mov dword ptr [ebp-34h],edx 004010F8 jmp main+0F0h (00401100) 004010FA mov eax,dword ptr [ebp-8] 004010FD mov dword ptr [ebp-34h],eax 00401100 mov ecx,dword ptr [ebp-0Ch] 00401103 cmp ecx,dword ptr [ebp-10h] 00401106 jle main+100h (00401110) 00401108 mov edx,dword ptr [ebp-0Ch] 0040110B mov dword ptr [ebp-38h],edx 0040110E jmp main+106h (00401116) 00401110 mov eax,dword ptr [ebp-10h] 00401113 mov dword ptr [ebp-38h],eax 00401116 mov ecx,dword ptr [ebp-34h] 00401119 cmp ecx,dword ptr [ebp-38h] 0040111C jle main+12Ch (0040113c) 0040111E mov edx,dword ptr [ebp-4] 00401121 cmp edx,dword ptr [ebp-8] 00401124 jle main+11Eh (0040112e) 00401126 mov eax,dword ptr [ebp-4] 00401129 mov dword ptr [ebp-3Ch],eax 0040112C jmp main+124h (00401134) 0040112E mov ecx,dword ptr [ebp-8] 00401131 mov dword ptr [ebp-3Ch],ecx 00401134 mov edx,dword ptr [ebp-3Ch] 00401137 mov dword ptr [ebp-40h],edx 0040113A jmp main+148h (00401158) 0040113C mov eax,dword ptr [ebp-0Ch] 0040113F cmp eax,dword ptr [ebp-10h] 00401142 jle main+13Ch (0040114c) 00401144 mov ecx,dword ptr [ebp-0Ch] 00401147 mov dword ptr [ebp-44h],ecx 0040114A jmp main+142h (00401152) 0040114C mov edx,dword ptr [ebp-10h] 0040114F mov dword ptr [ebp-44h],edx 00401152 mov eax,dword ptr [ebp-44h] 00401155 mov dword ptr [ebp-40h],eax 00401158 mov ecx,dword ptr [ebp-40h] 0040115B mov dword ptr [ebp-14h],ecx