打印

请问一下,汇编怎样调用C?

[复制链接]
1591|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cgkdxx|  楼主 | 2008-6-3 08:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
xwj| | 2008-6-3 08:44 | 只看该作者

主要就是参数传递问题,仔细去看编译器的帮助

最简单的方法就是写个空函数,用SRC选项编译看看生成的代码

使用特权

评论回复
板凳
surperchen| | 2008-6-4 11:34 | 只看该作者

错了

C里面可以嵌入汇编,但汇编里不能嵌入C

使用特权

评论回复
地板
赤铸| | 2008-6-4 19:43 | 只看该作者

C 和汇编外部函数的调用方式其实没有任何区别

汇编无所谓函数原型, 所以汇编程序里只需用

EXTERN FUNCNAME

声明一下 (跟 C 程序里要声明 extern 函数一样), 只要这个 FUNCNAME 在另一个 OBJ 的代码段里确有定义, 管它是 C 还是汇编产生的, 都是一样调用 (也就是连接器能够帮你生成可执行代码)

至于如何正确运行, 关键是参数约定, 懒人&聪明人都用 xwj 的办法看 :)

使用特权

评论回复
5
IC921| | 2008-6-5 00:04 | 只看该作者

懒人&聪明人都一样?xwj牛了!

使用特权

评论回复
6
cgkdxx|  楼主 | 2008-6-5 08:55 | 只看该作者

谢谢各位!!

使用特权

评论回复
7
Ice_River| | 2008-6-5 14:23 | 只看该作者

跟 xwj 一帖

或者直接把你的C程序在相应环境下编译成汇编,然后直接嵌入汇编中!

使用特权

评论回复
8
李冬发| | 2008-6-6 01:35 | 只看该作者

xwj的最正确,从SRC中复制

使用特权

评论回复
9
johnylu| | 2008-6-6 13:33 | 只看该作者

请问一下,汇编怎样调用C?

汇编里怎么就不能调用C了,自己去看下编译器的参考手册先!

使用特权

评论回复
10
tpu| | 2008-6-8 22:32 | 只看该作者

很简单

参数压栈,返回地址压栈,CALL之。

使用特权

评论回复
11
lai832| | 2008-6-9 19:50 | 只看该作者

狠.

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

192

主题

1126

帖子

0

粉丝