#include <iostream>
using namespace std;
int main()
{
const int AI = 10;
_asm
{
lea ebx,AI
mov dword ptr[ebx],30H
}
cout<<AI<<endl;
return 0;
}
我們單步跟蹤如下圖:
根據AI所在地址修改其值如下圖:
但是結果輸出爲:
爲什麼會出現這樣的結果呢,接着我們來看看反彙編的代碼:
從上圖我們知道了爲什麼輸出的值還是沒有改變,這是因爲由於在編譯時AI的值已知,並且是const常量,所以生成的代碼並不是引用AI,而且直接引用了立即數0Ah。