在c语言里怎么调用汇编函数?

代码如下:/*try.c*/void_hlt(void)main(){for(;;){_hlt();}};fuct.asm[bits32]global_hlt_hlt:h... 代码如下:/
*try.c*/
void _hlt(void)
main()
{
for(;;)
{
_hlt();
}
}
;fuct.asm
[bits 32]
global _hlt
_hlt:
hlt
ret
展开
 我来答
匿名用户
推荐于2016-08-28
展开全部
把汇编写在另一个文件里 在main写个原型声明 再把两个文件同时编译可不可以。
我的gcc编译器里是这样写的
汇编文件m.s
.file "stdio.h"
#hellowrold.s print "hello,world!"

.section .data
output:
.ascii "%d %d %d\0"

.section .text
.globl _fun
_fun:
pushl %ebp
movl %esp, %ebp
subl $16, %esp
movl 0x8(%ebp), %eax
movl %eax, 0x4(%esp)
movl 0xc(%ebp), %eax
movl %eax, 0x8(%esp)
movl 0x10(%ebp), %eax
movl %eax, 0xc(%esp)
movl $output, %eax
movl %eax, (%esp)
call _printf
movl %ebp, %esp
popl %ebp
ret
.end
主函数前的原型声明 extern int fun(int i, int j, int k);
追问
这样写的话,那个_hlt函数会出问题:一堆路径……underfined fuction "_hlt"。
追答
你是什么编译器 汇编那个文件编译了吗。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式