小编Ali*_* U.的帖子

从c调用汇编函数

我试图从c调用汇编函数,但我不断收到错误.

    .text
    .globl integrate
    .type integrate, @function
integrate:
    push %ebp
    mov %esp, %ebp
    mov $0,%edi
start_loop:                
    cmp %edi,1024           
    je loop_exit
    mov 8(%ebp),%eax          
    mov 12(%ebp),%ecx          
    sub %eax,%ecx              
    add %edi,%ecx
    incl %edi                
    jmp start_loop             
loop_exit:                 
    movl %ebp, %esp
    popl %ebp
    ret   
Run Code Online (Sandbox Code Playgroud)

这是我的汇编函数,名为integrate.s的文件.

#include <stdio.h>

extern int integrate(int from,int to);

void main()
{
    printf("%d",integrate(1,10));
}
Run Code Online (Sandbox Code Playgroud)

继承人我的代码.

function.c:5:6: warning: return type of ‘main’ is not ‘int’ [-Wmain]
/tmp/cciR63og.o: In function `main':
function.c:(.text+0x19): undefined reference to `integrate'
collect2: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)

每当我尝试使用gcc -Wall …

c x86 assembly inline-assembly

6
推荐指数
4
解决办法
3万
查看次数

标签 统计

assembly ×1

c ×1

inline-assembly ×1

x86 ×1