解释一下下面的程序

来源:百度知道 编辑:UC知道 时间:2024/05/31 11:17:10
#include <iostream>
using namespace std;
void main( )
{
unsigned int a,b;
cin>>a;
cin>>b;
int *c = &a;
_asm
{
mov eax, c;
mov eax, [eax];
mov ebx, b;
lea eax, [eax+ebx];
mov a, eax;
}
cout<<a;
}
解释_asm部分就行了
我对汇编一无所知

变量C指的是变量a的地址,先把a的地址放到寄存器AX,然后又把AX所指向的地址段中的内容a放到寄存器AX中,意思就是把地址翻译成内容了,然后又把变量b赋值给寄存器BX,然后取AX和BX 2个寄存器相加后赋值给AX的结果的偏移地址,并赋值给a!!!
最终的汇编里面的意思就是变量a和变量b相加,然后取他们相加的结果数字的偏移地址,并把这地址赋值给变量a