C行间asm的问题

titan52 2005-09-04 10:30:01
做个东西,在call 的问题上拌住了,后面如何直接调用相应的内存地址

main()
{ ...
asm call ???
...
}
...全文
178 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
mostideal 2005-09-05
  • 打赏
  • 举报
回复
ding!!!!
milozy1983 2005-09-05
  • 打赏
  • 举报
回复
#include "stdafx.h"


void Display()
{
printf("hello");
}


VC6.0

int main(int argc, char* argv[])
{
void (*p)();
p = Display;
_asm {
call p
}
return 0;
}
jiangdamalong 2005-09-04
  • 打赏
  • 举报
回复
你可以这样
void main()
{
asm
{
mov ax,..
mov bx...
int 21h
}
}
titan52 2005-09-04
  • 打赏
  • 举报
回复
快来帮忙啊,谢谢了
basesky 2005-09-04
  • 打赏
  • 举报
回复
直接 call 函数名
zhouhuahai 2005-09-04
  • 打赏
  • 举报
回复
不过偶觉得这样做没啥意义.直接用C的函数调用不就行了么?用ASM又没提高效率.
zhouhuahai 2005-09-04
  • 打赏
  • 举报
回复
如果函数没参数,直接call 函数名.

如果有参数:
则:先将参数压栈.(要按从右到左的顺序,将参数mov到寄存器中,可以是ax,cx等等,再push)

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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