下面两个程序有区别吗?
//程序1
int*a=new int[2];
a[0]=100;
a[1]=200;
int i=1;
int r;
__asm{
mov ebx,i
mov eax,a+4
mov r,eax
}
cout<<r<<endl;
//程序2
int a[]={100,200};
int i=1;
int r;
__asm{
mov ebx,i
mov eax,a[ebx*4]
mov r,eax
}
cout<<r<<endl;
程序2能输出正确结果200,而程序1结果不对,为什么呢?难道动态申请的数组无法间接寻址?