内联汇编"不正确的操作数类型"

Mushu 2008-07-21 11:58:26
//第一次在C++用汇编,错误是“不正确的操作数类型”
byte *y = theHash;//theHash是函数外 byte theHash[20];
_asm{
...
mov y, dword ptr[ebp-18]//这里报错了,而且我用mov y,[ebp-18]也是一样
//而且请问里面这个18这时是指10进制还是16进制(感觉是10进制)
//谢谢
...
}
...全文
369 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhkefa 2008-07-22
  • 打赏
  • 举报
回复
汗,,
刚卡了下,害我发了2次,,
zhkefa 2008-07-22
  • 打赏
  • 举报
回复
啊啊啊啊啊啊啊啊阿啊啊

想起来了,是mov指令的约束
mov 不允许存储器到存储器复制的,

很久没动汇编,忘的差不多了,,
zhkefa 2008-07-22
  • 打赏
  • 举报
回复
啊啊啊啊啊啊啊啊阿啊啊

想起来了,是mov指令的约束
mov 不允许存储器到存储器复制的,

很久没动汇编,忘的差不多了,,
Mushu 2008-07-22
  • 打赏
  • 举报
回复
.....郁闷啊...我这样写他就成功...

byte *y = theHash;
_asm{
....
push eax
mov eax,dword ptr[ebp-18]
mov y,eax
pop eax
....
}
Mushu 2008-07-22
  • 打赏
  • 举报
回复
我试过
DWORD z;//临时变量
mov z, dword ptr[ebp-18] //这里也是报同样的错...真的不知道错在哪里
zhkefa 2008-07-22
  • 打赏
  • 举报
回复
是y的类型与dword不匹配吧,,
Mushu 2008-07-22
  • 打赏
  • 举报
回复
.....郁闷啊...我这样写他就成功...

byte *y = theHash;
_asm{
....
push eax
mov eax,dword ptr[ebp-18]
mov y,eax
pop eax
....
}

64,664

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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