打印

汇编语言中怎么调用函数?

[复制链接]
2892|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
堕落的青春|  楼主 | 2008-3-25 08:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
Etual| | 2008-3-25 11:29 | 只看该作者

想想C编译器是怎么做就知道了

汇编用的办法本质上跟C没啥区别的.
1, 你可以用全局变量来传递参数
这个最简单了,先将参数放到指定的寄存器,然后直接CALL子程序就OK了

2, 你可以通过堆栈来传递参数
先将参数PUSH进去堆栈,然后在子程序里面POP出来用就可以了,不过千万注意PC指针,不要搞乱,否则程序会跑飞

3, 直接传个地址进来,用间接寻址来操作寄存器(也就是所谓的指针传递了) 
这个看情况用就是了,在查表什么的操作方面很方便的

程序的实现没有语言之分, C语言能实现的,汇编同样能实现,只是效率, 和工作量的问题而已,所以建议多学习一下C编译的原理,对写程序很有帮助

使用特权

评论回复
板凳
堕落的青春|  楼主 | 2008-3-25 12:23 | 只看该作者

多谢了

谢谢这位大哥的指教,小弟在此感谢了

使用特权

评论回复
地板
mohanwei| | 2008-3-25 13:23 | 只看该作者

看一下反汇编代码就知道了

使用特权

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

本版积分规则

4

主题

9

帖子

0

粉丝