内嵌汇编转纯汇编的问题

g11448498 2007-09-13 11:20:40
Pbuysale = ^Tbuysale;//定义指针
Tbuysale = packed record
dwID: Integer;
dwPos: Integer;
dwNum: Integer;
end;


procedure MyBuy(p:pointer);
begin
asm
pushad
push p//压入数据结构
push 1//购买组数
mov eax, $5a38c0
call eax
add esp, 8
popad
end;
end;

这是一个内嵌汇编,,压入数据结构的,, 怎么把上面的代码改写成纯汇编的代码呀。。
这是我自己写的,不正确呀,,希望高手指教
pushad
arrary dd dusp 3 (?)
arrary[0]=1h
arrary[1]=1h
arrary[2]=1h
push [arrary]
push 1
mov eax,5a38c0h
call eax,
add esp,8
popad





...全文
86 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
大熊猫侯佩 2007-09-13
  • 打赏
  • 举报
回复
arrary dd dusp 3 (?)
以上一句放到可到达的指令之外

push [arrary]
你是要push arrary的地址还是其内容?
g11448498 2007-09-13
  • 打赏
  • 举报
回复
pushad
arr struc
arr1 dd 1111
arr2 dd 1111
arr3 dd 1111
arr ends
push arr
push 1
mov eax, 59F4C0h
call eax
add esp, 8
popad
ret
我改成这样了,好象也不行啊
g11448498 2007-09-13
  • 打赏
  • 举报
回复
他的程序是把一个指向结构数组的指针压进堆栈啊。。
我想用汇编打到同样的目的,,所以就把[ARRARY]的地址发进去啊
g11448498 2007-09-13
  • 打赏
  • 举报
回复
type
Pbuysale = ^Tbuysale;//定义指针
Tbuysale = packed record
dwID: Integer; //物品ID
dwPos: Integer; //物品格数
dwNum: Integer;//物品数量
end;

goods:Tbuysale;


procedure MyBuy(p:pointer); stdcall;
begin
asm
pushad
push p
push 1
mov eax, $59F4C0
call eax
add esp, 8
end;
end;

goods.dwid:=1725;//物品ID
goods.dwpos:=0;//物品位置第几格
goods.dwNum:=1;//物品数量
FunIn(T_HWND,@mybuy,@goods,SizeOf(goods)*3)

21,459

社区成员

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

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