内联汇编问题:mov eax,dword ptr es:[si]出错

weajan 2008-10-29 09:41:56
在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;
}
...全文
225 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
fanpeii 2010-11-11
  • 打赏
  • 举报
回复
参观学习下。
xlt123 2008-10-29
  • 打赏
  • 举报
回复
win32汇编不要去访问段寄存器,除了FS
killbug2004 2008-10-29
  • 打赏
  • 举报
回复
这代码看着很别扭
archim 2008-10-29
  • 打赏
  • 举报
回复
mov eax,dword ptr es:[esi]
cnzdgs 2008-10-29
  • 打赏
  • 举报
回复
32位程序要用32位寄存器间址。

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧