using namespace std;
//此程序也展示了內嵌彙編應如何使用C++中的指針
void main( )
{
unsigned int a,b;
cout<<"輸入兩個正整數:"<<endl;
cin>>a;
cin>>b;
unsigned int *c = &a;
__asm //下面是內嵌彙編...
{
mov eax, c; //c中存儲的a的地址->eax
mov eax, [eax]; //a的值->eax
//注意直接mov eax, [c]是錯誤的
mov ebx, b; //可以像這樣直接對ebx賦值
lea eax, [eax+ebx];
mov a, eax; //可以直接將eax的值->a
} //內嵌彙編部分結束...
cout<<a<<endl;
}
/*
還有一個非常重要的寄存器,叫做標誌寄存器(EFLAGS),標明瞭運算結果的各個屬性,
你不能直接讀取或修改它。
這些屬性有:不溢出/溢出(OF)、正/負(SF)、非零/零(ZF)、偶/奇(PF)、不進位/進位(CF)等。
*/