我使用Intel c X64 inline asm来编译一些汇编代码,数据数组的访问方式如下:
int buf[100];
-------------------------------------------------
_asm
{
lea rax, __ImageBase
mov rcx, 10
mov [IMAGEREL buf+rax+rcx*8], 0x1234
}
ICC抱怨IMAGEREL关键字,ml64编译得很好,ICC对IMAGEREL关键字有任何等价物;
PS:我知道我也可以使用以下寻址模式,但这需要对我的代码进行大量修改:
_asm
{
lea rax, buf
mov rcx, 10
mov [rax+rcx*8], 0x1234
}
感谢
PS:我使用-S开关为某些c代码生成asm列表,在输出中我发现这样的asm代码,但是当我把它放在内联asm中时,ICC抱怨了imagerel运算符movdqu xmmword ptr [imagerel(buf) + rcx + rdx * 4], xmm0