内联汇编问题:mov eax,dword ptr es:[si]出错
在C++中使用内联汇编时出错信息:error C2432: illegal reference to 16-bit data in 'second operand
出错语句为 mov eax,dword ptr es:[si]
怎么改这段语句。?
DWORD getvect(WORD IntNum)
{
DWORD rc;
__asm{
push es
push si
xor ax,ax
mov es,ax
mov si,IntNum
shl si,2
mov eax,dword ptr es:[si]
mov rc,eax
pop si
pop es
}
return rc;
}