ahhhhwang 发表于 2007-04-28 09:52

求助:at&t汇编中调用c子程序的疑问

如果被at&t汇编调用的c子程序有返回值,将具体怎么返回给调用他的汇编的。

cjaizss 发表于 2007-04-28 09:54

X86?通过%eax返回试试?

hshq_cn 发表于 2007-04-28 10:47

如果高于32位用%edx:%eax,
浮点数用%st(0)

ahhhhwang 发表于 2007-04-28 11:33

多谢各位。各位如果有at&t汇编的书的话也不吝传个吧。受之于鱼不如受之于渔啊

cjaizss 发表于 2007-04-28 12:11

原帖由 ahhhhwang 于 2007-4-28 11:33 发表于 4楼
多谢各位。各位如果有at&t汇编的书的话也不吝传个吧。受之于鱼不如受之于渔啊
下面有个帖子<请教at&t伪指令>
http://linux.chinaunix.net/bbs/thread-896587-1-1.html
找mik要。

beepbug 发表于 2007-04-28 12:29

先编一个很简单的C程序。主程序调用一个函数,该函数只返回一个值。编译生成汇编码。分析这个代码,里面就有一个汇编调用C程序并返回值的框架。把它搬到你的程序里。
高级语言调用汇编语言,或汇编语言调用高级语言,没有接口技术资料,大都这样做。

hshq_cn 发表于 2007-04-28 13:16

回复 #6 beepbug 的帖子

由C生成的汇编代码复杂一些,因为是通用的,不利于学习的吧;
《汇编语言程序设计》
【原 书 名】       Professional Assembly Language
【原出版社】         John Wiley & Sons
【作  者】         (美)Richard Blum [同作者作品] [作译者介绍]
【译  者】         马朝晖[同译者作品] 等
【出 版 社】         机械工业出版社
【书 号】         7-111-17532-8
【开 本】         16开
【页 码】         409
【出版日期】         2006年1月
【版 次】         1-1
http://www.china-pub.com/computers/common/info.asp?id=28024

这本书不错,网上也有pdf扫描版,不过文件很大,现在公司也没有;
网上也有英文原版的,可自由下载;
想要的话给我发消息hshqcn@gmail.com;
配合《gnu assembler》不错,可惜偶英文不太好,呵呵;
网上linuxforums.org有以前版本的翻译。

hshq_cn 发表于 2007-04-28 13:21

http://linux.chinaunix.net/bbs/thread-886208-1-1.html
页: [1]
查看完整版本: 求助:at&t汇编中调用c子程序的疑问