- 49 名前:デフォルトの名無しさん mailto:sage [2017/05/15(月) 15:48:46.87 ID:Vosr5hkL0.net]
- VC++での逆アセンブルコード (Visual Studio 2017 debugモード)
// a=a++ a = 10; 004037DE mov dword ptr [a],0Ah a = a++; 004037E5 mov eax,dword ptr [a] 004037E8 mov dword ptr [a],eax 004037EB mov ecx,dword ptr [a] 004037EE add ecx,1 004037F1 mov dword ptr [a],ecx // a=++a a = 10; 004037F4 mov dword ptr [a],0Ah a = ++a; 004037FB mov eax,dword ptr [a] 004037FE add eax,1 00403801 mov dword ptr [a],eax 00403804 mov ecx,dword ptr [a] 00403807 mov dword ptr [a],ecx // a = a+++a a = 10; 0040380A mov dword ptr [a],0Ah a = a+++a; 00403811 mov eax,dword ptr [a] // aの値と 00403814 add eax,dword ptr [a] // aの値を加算して (a+a) 00403817 mov dword ptr [a],eax // 一時保存(評価)して 0040381A mov ecx,dword ptr [a] // 評価結果に対して 0040381D add ecx,1 // 1を加算して (a+a)++ 00403820 mov dword ptr [a],ecx // 最終結果をaに代入
|

|