#include
<
iostream
>
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)等。
*/
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)等。
*/